List Set介面及兩者選擇

2021-10-08 23:10:12 字數 2886 閱讀 6838

list:有序,可重複

list繼承collection,因此可以實現collection的方法,這裡只對list的特有功能進行舉例使用

list

public class test 

}

輸出結果

[1, 2, 3]
public class test 

}

輸出結果

3

[1, 2]

public class test 

}

輸出結果

20
public class test 

}

輸出結果

30

[10, 20, 30]

public class test 

}

輸出結果

2

-1

public class test 

}

輸出結果

[a, b]
public class test 

}}

輸出結果

10

2030

用此方法可以實現反向遍歷,但是反向遍歷之前,需要進行正向遍歷,這樣指標才能移到最後

如果直接反向遍歷,指標的預設位置是在最前面,會判斷前面沒有元素,從而無法遍歷

public class test 

system.out.println("-------------------------------------");

while (listiterator.hasprevious())

}}

輸出結果

10

2030

-------------------------------------

3020

10

在jdk1.8之後,新增了遍歷集合的方法

public class test 

});}

}

輸出結果

10

2030

arraylist,vector,linkedlist皆有特有方法,檢視api使用

set:無序,唯一

hashset

public class test 

}}

輸出結果

100

2040

1030

我們發現輸出的結果我們的輸入的順序不一致

linkedhashset

public class test 

}}

輸出結果

100

1020

4030

輸出的結果和我們輸入的順序一致

treeset

treeset的自然排序

public class test 

}}public class student implements comparable

public student(string name, int age)

public string getname()

public void setname(string name)

public int getage()

public void setage(int age)

@override

public string

tostring() ';

}@override

public int compareto(student s)

}

輸出結果

student

student

student

treeset的比較器排序
public class test 

});treeset.add(new student("www",17));

treeset.add(new student("yyy",18));

treeset.add(new student("fff",16));

for (student student : treeset)

}}

輸出結果

student

student

student

相同點

不同點唯一嗎?

是:set

排序嗎?

是:treeset或linkedhashset

否:hashset

如果你知道是set,但是不知道是哪個set,就用hashset

否:list

要安全嗎?

是:vector

否:arraylist或者linkedlist

查詢多:arraylist

增刪多:linkedlist

如果你知道是list,但是不知道是哪個list,就用arraylist

TCP UDP協議及兩者的區別

二 upd的定義 使用者資料報協議 三 tcp和udp的區別 位於傳輸層,提供可靠的位元組流服務。位元組流服務 byte stream service 是指,為了方便傳輸,將大塊資料分割成以報文段 segment 為單位的資料報進行管理。而可靠的傳輸服務是指,能夠把資料準確可靠地傳給對方。即tcp ...

氣泡排序法和選擇排序法及兩者效率問題

今天寫作業遇到這樣一道題目 將一組資料按照氣泡排序法從小到大排列後輸出,要求顯示每個元素及它們在原陣列中的下標。我忘記了氣泡排序是怎麼樣的,自己就先按思路寫了乙個這樣的演算法 include void main b 5 for i 0 i 4 i for i 0 i 5 i for j 0 j 5 ...

抽象類,介面,以及兩者的區別

1抽象類 含有abstract修飾符的class即為抽象類,abstract 類不能建立的例項物件。含有abstract方法的類必須定義為abstract class,abstract class類中的方法不必是抽象的。abstract class類中定義抽象方法必須在具體 concrete 子類中...