集合


集合

集合ArrayList 可以添加重復數據

ArrayList<e> list = new ArrayList<e>();

e:表示泛型----什么數據類型,

如果是基本數據類型就用包裝類

如果不加<e>,那么集合可以同時存放基本數據類型和String類型

集合長度 size()方法,獲取集合長度.

集合增加

add(Object obj);方法給集合添加數據,

add(int index, Object obj);在指定下標index位置處添加obj數據;

1.index不能超出原來集合長度

2.如果下標index的位置上有值,就會把下標和之后的值往后移,把數據添加到下標index位置上.

集合刪除

remove(Object obj)方法 集合刪除

如果obj數據不是int類型和char類型,就查找第一個然后把它刪除

如果obj是int類型和char類型,就會默認為是下標,找到對應下標的值刪除

int類型和char類型要刪除的話,必須使用對應的封裝包. int -----Integer. char -----Charatcer.

集合修改

set(int index, Object obj)方法,下標index 新的值obj

集合查找

indexOf ();方法,放回數據第一次找到的下標,沒有放回-1

LastIndexOf();反向查找對應數據的下標,返回下標

contains();查找數據,找到返回true,沒有找到返回false

get();查找對應下標,放回該下標存放的值

 

判斷集合是否為空 isEmpty();

清空集合 clear();

 

Verctor集合與ArrayList集合

1.都是List接口下的集合;

2.ArrayList的方法和實現基本上和Vertor一樣,底層是數組實現

區別:

1.Vector的方法都是線性安全的,ArrayList沒有考慮線性安全問題.

2.ArrayList在一些算法上做了優化,效率更高.

ArrayList與LinkedList區別

1.ArrayList底層是數組實現,LinkedList底層是鏈表實現

1.1 在Java中鏈表就是自己實現了一個類,在類中記錄了前一個和后一個的地址,每次查找都需要找到前一個或后一個才能往前或往后找到

2.ArrayList查找速度快,但刪除和插入的速度慢

3.LinkedList刪除和插入的速度快,但查找速度慢

4.LinkedList有自己獨有的方法:addFirst addLast,removeFirst,rnoveLast

List接口下的集合特點

1.都是有序的(按照添加順序獲取)

2.都有下標

3.可以重復

Set接口下的集合特點

1.沒有下標

2.無序的

3.不能重復(會覆蓋)

 

Set接口的集合判斷是否重復是通過hash值是否相等判斷

HashSet集合與TreeSet集合區別

TreeSet集合放入進去的對象必須實現Comparable接口,並且實現Comparable接口的compareTo方法之后,就可以自動排序,(存儲地址不變)

Comparable接口與Comparator接口的區別

1.Comparable接口在Java.lang包,Comparator接口在Java.util包

2.Comparable接口下的compareTo方法只需一個參數,在實體類實現

Comparator接口下的compare方法需要兩個參數,在另外一個類或內部類實現

它們都是只有一個方法

在compareTo方法或compare方法中,自定義排序規則

注意:compareTo方法和compare方法返回的只需要是正數或負數就可以了

Collections

在Java.util包,集合的工具包,一個抽象方法

只能List集合使用,Set集合必須轉換成List集合才可以使用

sort方法一個參數時,實體類必須實現Comparable接口

Collections.sort(list);//List泛型集合

sort方法兩個參數時,必須另外一個類實現Comparator接口

Collections.sort(list,new StudentCompare()); //List泛型集合,實現Comparator接口的類

shuffle方法進行字符串隨機亂序

Collections.shuffle(list);//List泛型集合

 

集合遍歷

1.for循環 只適合List接口下的集合

2.foreach循環

3.迭代器Iterator

集合轉換類型
  Set<Student> set = new TreeSet<Student>();
set.add(stu1);
set.add(stu2);
set.add(stu3);
set.add(stu4);

for (Student student : set) {
System.out.println(student);
}
System.out.println("======================");
//Set集合轉換List集合
List<Student> list = new ArrayList<Student>(set);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM