中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于java中集合的概念(詳解)

發布時間:2020-09-14 02:34:10 來源:腳本之家 閱讀:144 作者:翊風 欄目:編程語言

1.集合是儲存對象的,長度可變,可以封裝不同的對象

2.迭代器: 其實就是取出元素的方式(只能判斷,取出,移除,無法增加)

就是把取出方式定義在集合內部,這樣取出方式就可以直接訪問集合內部的元素,那么取出方式就被定義成了內部類.

二每一個容器的數據結構不同,所以取出的動作細節也不一樣.但是都有共性內容判斷和取出,那么可以將共性提取,這些內部類都符合一個規則Iterator

Iterator it = list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}

另一種是

for(Iterator it = it.iterator(); it.hasNext();){
System.out.printin(it.next());}

Collection:

(1).List:元素是有序的,元素可以重復.因為改集合體系有索引.

!--ArrayList:底層的數據結構使用的是數組結構 ,特點:查詢速度快,但是增刪慢.線程不同步

!--LinkedList:底層使用的是;鏈表數據結構,特點:增刪速度快,查尋速度慢.

!--Vector:底層的數據結構使用的是數組結構 ,.線程同步,速度慢,被ArrayList替代l

list:特有方法,凡是可以操作角標的方法都是該體系特有的方法

增:add(index,element); addAll(index,Collection);

刪:remove(index);

改:set(index,element);

查:get(index); subList(from,to); ListIterator();(重點)

注意:判斷同一對象,equals方法

public boolean equals(Object obj){
if(!(obj instanceof Person))

return false;
Person p=new Person();

return this.name.equals(p.name)&&this.age==p.age;

}

(2). Set:元素是無序的(元素存入和取出的順序是不一定一致的),不可以重復

!--HashSet:底層數據結構是哈希表

HashSet使如何保證元素唯一性的呢?

是通過元素的兩個方法,hashcode和equals來完成

如果元素的HashCode相同才會判斷equals是否為true,反の,不會調用

對于判斷元素是否存在,以及刪除等操作,依賴的方法是元素的hashcode和equals方法

!--TreeSet:

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

1.toArray()方法:是遍歷用的(把集合轉變為數組)

public class ToArray {
public static void main(String[] args) {
Collection c=new ArrayList();
c.add("hello");
c.add("world");
c.add("java");
 
Object[] obj=c.toArray();
for(int x=0;x < obj.length;x++){
System.out.println(obj[x]);
}
}
}

1.1asList()方法,把數組轉變為集合

//定義一個數組
//String[] s={"hello","world","java"};
//List<String> list=Arrays.asList(s);
//直接引用
List<String> list=Arrays.asList("hello","world");
for(String s1:list){
System.out.println(s1);
}

注意:雖然他可以把數組轉變成集合,但是本質是數組,所以他的長度不能改變,不能增刪

2.數組長度是length方法,字符串的長度是length(),集合求長度的方法是size.

3. Iterator迭代器是集合的特有遍歷方法

while方法:(習慣用法)

Iterator it=list.iterator();//list是集合
while(it.hasNext()){ //判斷是否有下一個數據
System.out.println(it.next());
}

for循環方法:(效率高,it用完就是垃圾)

for(Iterator it=c.iterator();it.hasNext();){
System.out.println(it.next());
}

注意:不能連續it.next(),使用一次就換一個對象

4.list集合特有的遍歷方法:就是size和get()的結合

for(int x=0; x<list.size();x++){
System.out.println(list.get(x));
}

5.list特有的迭代器

ListIterator<String> lit=list.listIterator();
while(lit.hasNext()){
System.out.println((String)lit.next());
}
while(lit.hasPrevious()){
System.out.println((String)lit.previous());
}

注意:ListIterator可以實現逆向遍歷,但是必須現正向遍歷,否則無意義

6.HashTable和HashMap的區別

HashTable:線程安全,效率低,不允許null建和null值.

HashMap:線程不安全,效率高,允許null建和null值.

7.Collection和Collections的區別?

Collection:是單列集合的頂層接口,有子接口List和Set

Collections:是針對集合操作的工具類,有對集合進行排序和二分查找的方法

8.二分查找找不到,返回 -(最大索引+1)

以上這篇基于java中集合的概念(詳解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

双牌县| 蓬溪县| 泾源县| 绥中县| 九江县| 广东省| 广饶县| 张家口市| 全椒县| 谷城县| 青岛市| 玛沁县| 东乡县| 黔江区| 张家港市| 白水县| 宕昌县| 灵台县| 罗江县| 邢台市| 吉林省| 乌兰县| 邯郸县| 临西县| 兴山县| 柏乡县| 长治县| 清水县| 铜梁县| 上犹县| 田阳县| 安阳县| 梅河口市| 澎湖县| 全州县| 泗阳县| 泾川县| 卫辉市| 河曲县| 沙坪坝区| 肥乡县|