天天看點

Java集合架構

數組和集合:

數組的特點:

1、在使用之前,要确定空間的大小,空間大小固定

2、數組配置設定的空間是連續的

3、數組可以用來存儲基本類型的資料、對象

比如:Student[] stu=new Student[5]

4、數組存儲的資料類型和對象類型必須為同一種類型

集合的特點:

1、集合配置設定的空間不要求是連續

2、集合隻能存儲對象,不能夠存儲基本資料類型

3、存儲對象不要求是同一種類型的對象

集合中共性的方法:

add(E e) //add(Object obj) 往容器增加元素

a1.addAll(a12);//把容器a12裡面的元素增加到容器a1裡面

size() //統計容器中元素的個數

clear() //清空容器中的元素

contains(Object o) //容器中是否包含該元素

remove(Object o) //删除容器中個的某個元素

removeAll(Object o)

a1.retainAll(a12);//取交集,把容器a12的相同的元素取出來,放在a1容器中

a1.containsAll(a12);//包含關系 容器a1包含容器a2中所有的元素,如果包含,則傳回true,否則,傳回false

String[] array=a12.toArray(new String[5]);//把集合a12轉換成數組array

增加:

a1.addAll(1, a12);//從指定位置把容器a12增加到容器a1裡面

add(1, "ETC09");//把元素增加到指定位置index上,位置的下标是從零開始

删除:

remove(int index);//删除容器中某個位置上的元素

修改:

set(int index,E element);//修改容器中某個位置上的元素内容為element

查詢:

subList(int from,int to);//某個容器(集合)中拿出子容器(集合),可以去from位置上的元素,但不能取to位置上的元素,傳回的是一個子容器(集合)

get(int index);//查詢容器中index位置的元素,傳回一個元素

a12.indexOf("ETC09");//傳回容器中某一個元素所在容器中對應的位置

Collection接口包括:List接口、Set接口

List接口包括:ArrayList、LinkedList、Verctor

Set接口包括:HashSet、TreeSet

存儲方式為什麼這麼多種呢?

之是以有這麼多容器來裝東西,是因為他們各自存儲東西的存儲方式不一樣。

存儲方式:資料結構

List接口存儲一組不唯一,有序(插入順序)的對象

不唯一的意思是:資料可以重複

如List的數組:[ETC01, ETC02, ETC03, ETC04, ETC05, ETC06, ETC04, ETC05, ETC06, ETC07, ETC08]

List:

1、List是接口

2、List容器存儲的對象可重複(不唯一)

3、List容器有序(輸出的時候,按放入時的順序輸出)

List中所特有的方法:

add(int index,E element)

add(int index,Collection c)

indexof(Object o)

remove(int index)

set(int index,E element)

subList(int from,int to)

ArrayList類實作了長度可變的數組,在記憶體中配置設定連續的空間。周遊元素和随機通路元素的效率比較高

LinkedList類采用連結清單存儲方式。插入、删除元素是效率比較高。

連結清單裡面有分成資料域和指針域

LinkedList和ArrayList差別:

LinkedList:

底層資料存儲方式:連結清單

插入和删除的效率比較高

ArrayList:

底層資料存儲方式:數組

随機通路和周遊元素的效率高

Set接口不存在get()方法

Set:

1、Set是一個接口

2、Set容器存儲的對象不可重複(唯一)、無序的對象

底層資料存儲方式:哈希表