set集合與map集合以及list的優化
阿新 • • 發佈:2018-11-15
Set
1.1 特點:無序、物件不能重複(eqauls)
eqauls從Object繼承,預設比較的記憶體地址
1.2 遍歷
1.2.1 foreach
1.2.2 迭代器
1.3 常用實現類
HashSet
TreeSet:根據某種(規則)對裡面的元素進行排序
規則1: java.lang.Comparable
規則2: java.util.ComparatorMap
4.1 特點:無序、以鍵值對的形式新增元素,鍵不能重複,值可以重複,如果鍵相同,值會覆蓋
它沒有繼承Collection介面
4.2 遍歷
3.2.1 先取出儲存所有鍵的Set,再遍歷Set即可
3.2.2 先取出儲存所有Entry重點內容的Set,再遍歷此Set即可(快速遍歷Map)
set程式碼塊
public class Set {
public static void main(String[] args) {
java.util.Set<Stu> set= new HashSet<>();
set.add(new Stu("15", "zah", 17));
set.add(new Stu("18", "hfgs", 145));
set.add(new Stu("78", "khkh", 19));
set.add(new Stu("123" , "khjde", 141));
set.add(new Stu("65", "ljkh", 147));
set.add(new Stu("32", "aads", 20));
set.add(new Stu("32", "aads", 20));
System.out.println(set.size());
/** * set不是所有的型別都是無序的Sting和integer是有序的,但是自己定義的實體類是無序的 * * 關於set集合的排序分兩點: * 1.jdk1.7及以下HashSet是無序的,而linkedHashSet是怎麼存怎麼取,TreeSet有預設的排序(自然排序介面,比較器排序介面)。 * 2.jdk1.8及以上HashSet和TreeSet都是有序的。HashSet的排序方式是雜湊排序,TreeSet它的排序是(自然排序介面,比較器排序介面) * */
list集合的優化
public class Collection2 {
//list的優化
public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException, NoSuchFieldException, SecurityException {
ArrayList list=new ArrayList<>(50);
getLen(list);
for (int i = 0; i < 60; i++) {
list.add(i);
System.out.print(list.size()+",");
getLen(list);
}
String [] arr=new String[10];
}
//結論:初始容量為10 每次增加陣列的長度為1.5倍。
//優化只需要給list一個指定的長度就行了這樣可以減少擴容的時間。