數組和集合:
數組的特點:
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容器存儲的對象不可重複(唯一)、無序的對象
底層資料存儲方式:哈希表