一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 基于java中集合的概念(詳解)

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

2021-01-01 12:34翊風 Java教程

下面小編就為大家帶來一篇基于java中集合的概念(詳解)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

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

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

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

?
1
2
3
4
Iterator it = list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}

另一種是

?
1
2
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方法

?
1
2
3
4
5
6
7
8
9
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()方法:是遍歷用的(把集合轉變為數組)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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()方法,把數組轉變為集合

?
1
2
3
4
5
6
7
8
//定義一個數組
//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方法:(習慣用法)

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

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

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

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

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

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

5.list特有的迭代器

?
1
2
3
4
5
6
7
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中集合的概念(詳解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/cy666/archive/2017/09/11/7506586.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 男人看片网址 | 四虎影视永久在线观看 | 精品国产品国语在线不卡丶 | 成人福利网站 | 婷婷综合久久中文字幕 | 亚洲精品免费在线 | 99精品久久精品一区二区小说 | 男神插曲女生动漫完整版动漫 | 91精品综合 | 亚洲国产成人精品无码区5566 | 亚洲成人贴图 | 欧美成人一区二区 | 久久精品国产免费播放 | 2019天天干夜夜操 | 无码精品一区二区三区免费视频 | 喜欢老头吃我奶躁我的动图 | 冰雪奇缘1完整版免费观看 变形金刚第一部 | 成人免费视频播放 | 日韩伦理在线看 | 久久国产乱子伦免费精品 | 美女在尿口隐私视频 | 国产成人精品免费久久久久 | 成年人在线观看视频免费 | 欧美精选欧美极品 | 香蕉久久高清国产精品免费 | 韩国帅男同gay网站 韩国三级在线播放 | 精品欧美男同同性videos | 婷婷福利 | 国产欧美综合精品一区二区 | 国产真实一区二区三区 | 成人免费网站视频ww | 精品女同一区二区三区免费站 | 农村妇女野战bbxxx | 韩日理论片| 2021最新国产成人精品视频 | 任我行视频在线观看国语 | 国产激情视频在线 | 国产精品美女福利视频免费专区 | 精品淑女少妇AV久久免费 | 男人捅女人的鸡鸡 | 国色天香社区视频免费观看3 |