日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

在Java中Collection的一些常用方法總結(jié)

瀏覽:164日期:2022-08-10 17:28:56
Java中Collection的常用方法

1、add() 向中添加元素

add(100) 自動(dòng)裝箱操作,實(shí)際上是放進(jìn)去的一個(gè)對(duì)象, Integer n = new Integer(100),實(shí)際上是把n放進(jìn)了

Collection co = new ArrayList();co.add(1);

2、addAll( Collection c )

將指定集合中的所有元素添加到從集合中因?yàn)锳rryList類中重寫(xiě)了equals() 方法,所以兩個(gè)集合比較相等。

public class lxc { public static void main(String[] args) {Collection c = new ArrayList();for(int i = 0; i < 5; i ++) { c.add(i);}Collection c1 = new ArrayList();c1.addAll(c);System.out.println(c1.equals(c)); // true }}

3、size() 獲取集合中元素個(gè)數(shù)

Collection co = new ArrayList();int n = co.size();

4、clear() 清空集合

Collection co = new ArrayList();co.clear();

5、contains(100) 判斷當(dāng)前集合中是否包含100這個(gè)元素 返回 true、false

Collection co = new ArrayList();co.add(100);co.add(200);boolean r = co.contains(100); // true

*** 深入探究***

例一:

下邊代碼,new了兩個(gè)字符串,s1被添加到集合中去了,但是s2沒(méi)有添加進(jìn)去,最后輸入s2是否在集合當(dāng)中?分析:按道理來(lái)說(shuō),s1和s2在棧內(nèi)存中是兩個(gè)變量分別指向了在堆內(nèi)存中存儲(chǔ)的也是兩個(gè)對(duì)象,只不過(guò)這兩個(gè)對(duì)象同時(shí)指向了 '123' 在常量池中的地址而已,怎么地集合中都不能包含s2啊?下邊我們來(lái)看下contains源碼:

public class lxc { public static void main(String[] args) {Collection r = new ArrayList();String s1 = new String('123');r.add(s1);String s2 = new String('123');System.out.println(r.contains(s2)); // true }}

contains()源碼:

參數(shù)o是調(diào)用contains()方法傳遞的參數(shù),內(nèi)部調(diào)用了indexOf(),而indexof方法內(nèi)部調(diào)用了indexOfRange方法,在這個(gè)方法中會(huì)去獲取集合中的每一個(gè)元素,然后通過(guò)equals() 方法來(lái)判斷傳遞的參數(shù)與集合中的元素是否相等,我們傳的參數(shù)是字符串,而字符串的equals()方法在源碼中已經(jīng)被重寫(xiě)了,只要字符串值相等就想等,實(shí)際判斷的是:s1.equals(s2), 結(jié)果相等,返回元素在集合中的索引,而索引一定 >= 0,所以返回true!其實(shí)調(diào)用contains() 方法,內(nèi)部是調(diào)用equals()方法來(lái)判斷的!!!!!!!!!!!!!!!!

在Java中Collection的一些常用方法總結(jié)

例二:

下邊知道為什么返回false了吧,Person類的eqauls() 方法繼承的是object對(duì)象上的,所以沒(méi)有重寫(xiě)equals() 方法的兩個(gè)對(duì)象比較自然返回false了。

public class lxc { public static void main(String[] args) {Collection r = new ArrayList();Person p1 = new Person('lxc', 20);r.add(p1);Person p2 = new Person('lxc', 20);System.out.println(r.contains(p2)); // false }}class Person{ String name; int age; public Person(String name, int age) {this.name = name;this.age = age; }}

我們來(lái)重寫(xiě)下Person對(duì)象的eqauls() 方法:

public class lxc { public static void main(String[] args) {Collection r = new ArrayList();Person p1 = new Person('lxc', 20);r.add(p1);Person p2 = new Person('lxc', 20);System.out.println(r.contains(p2)); // true }}class Person{ String name; int age; public Person(String name, int age) {this.name = name;this.age = age; } @Override public boolean equals(Object obj) {if(!(obj instanceof Person)) return false;if(this == obj) return true;Person o = (Person) obj;if((this.name == o.name) && (this.age == o.age)) { return true;}return false; }

6、remove() 刪除集合中某個(gè)元素

Collection co = new ArrayList();co.remove(100);

****深入探究****

其實(shí)remove() 方法和contains() 方法類似,內(nèi)部也是調(diào)用了equals() 方法,所以s1和s2相等,刪除了s2等同于刪除了s1。

public class lxc { public static void main(String[] args) {Collection r = new ArrayList();String s1 = new String('abc');r.add(s1);String s2 = new String('abc');Boolean res = r.remove(s2);System.out.println(res); // 刪除成功了System.out.println(r.size()); // 0 }}

remove源碼:獲取集合中的每一個(gè)元素,使用equals() 方法判斷是否相等,如果相等調(diào)用fastRemove方法刪除元素。

在Java中Collection的一些常用方法總結(jié)

7、isEmpty() 判斷集合是否為空 true、false

co.isEmpty();

8、Object r = col.toArray() 把集合轉(zhuǎn)數(shù)組

9、iterator 迭代器對(duì)象 (重點(diǎn))

xxx.iterator( ); 獲取迭代器。Collection h = new HashSet();Iterator r = h.iterator() 獲取iterator對(duì)象,目的遍歷數(shù)組 r迭代器對(duì)象 - 負(fù)責(zé)迭代集合當(dāng)中的元素。

r迭代器對(duì)象中的方法: (1)boolean hasNext()如果仍有元素可迭代,則返回true;(2)Object next() 返回迭代的下一個(gè)元素。(3)void remove() 沒(méi)返回,刪除集合中的元素

public class lxc { public static void main(String[] args) {Collection h = new HashSet();h.add(1);h.add(2);h.add(new Object());// 獲取迭代器Iterator r = h.iterator();while(r.hasNext()) { Object res = r.next(); System.out.println(res);} }}

public class lxc { public static void main(String[] args) {Collection c = new ArrayList();Iterator i = c.iterator();c.add(1);c.add(2);Iterator i1 = c.iterator();while(i1.hasNext()) { Object r = i1.next(); i1.remove(); System.out.println(r);}System.out.println(c.size()); // 0 }}

****重點(diǎn)****

當(dāng)集合的結(jié)構(gòu)發(fā)生改變的時(shí)候,迭代器必須重新獲取,如果還是以前老的迭代器,會(huì)出現(xiàn)異常。下邊集合的結(jié)構(gòu)發(fā)生了改變,結(jié)果報(bào)錯(cuò):

// 報(bào)錯(cuò):java.base/java.util.ArrayList$Itr.checkForComodificationpublic class lxc { public static void main(String[] args) {Collection c = new ArrayList();Iterator i = c.iterator();c.add(1);c.add(2);while(i.hasNext()) { Object r = i.next(); System.out.println(r);} }}

修改:

public class lxc { public static void main(String[] args) {Collection c = new ArrayList();Iterator i = c.iterator();c.add(1);c.add(2);Iterator i1 = c.iterator();while(i1.hasNext()) { Object r = i1.next(); System.out.println(r);} }}

到此這篇關(guān)于在Java中Collection的一些常用方法總結(jié)的文章就介紹到這了,更多相關(guān)Java Collection常用方法內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美xxxx中国| 国产成人精品一区二区三区视频| 国产精品三p一区二区| 日本91福利区| 欧美日韩视频免费看| 一本综合精品| 日韩三区四区| 日韩精品中文字幕吗一区二区| 久久亚洲国产精品一区二区| 免费视频最近日韩| 国产欧美69| sm久久捆绑调教精品一区| 国产精品久久久久av电视剧| 欧美日韩少妇| 日韩激情一二三区| 成人高清一区| 亚洲作爱视频| 国产激情久久| 在线观看精品| 亚洲不卡视频| 久久99偷拍| 欧美日韩中文一区二区| 伊人影院久久| 日本欧美一区| 久久精品青草| 91亚洲无吗| 999国产精品| 亚洲字幕久久| 色黄视频在线观看| 在线精品一区二区| 国产成人精品一区二区三区在线| 99久久久久国产精品| 欧美日韩伊人| 亚洲二区免费| 久久只有精品| 亚洲欧美日韩精品一区二区 | 激情欧美亚洲| 欧美亚洲网站| 激情综合网站| 精品一区二区三区中文字幕视频| 午夜久久久久| 涩涩av在线| 国产精品一在线观看| 午夜在线一区二区| 色偷偷色偷偷色偷偷在线视频| 日韩精品一区二区三区中文| 久久久天天操| 国产精品99在线观看| 国产欧美激情| 日韩精品视频中文字幕| 午夜精品成人av| 欧美精品第一区| 亚洲bt欧美bt精品777| 久久精品不卡| 天堂av在线| 四虎8848精品成人免费网站| 欧美亚洲免费| 欧美一级久久| 天堂va欧美ⅴa亚洲va一国产| 九九久久婷婷| 亚洲香蕉网站| 激情91久久| 黄色不卡一区| 久久在线电影| 免费国产自久久久久三四区久久 | 日本不卡在线视频| 免费在线观看成人| 六月丁香综合| 日本中文字幕视频一区| 免费美女久久99| 免费人成精品欧美精品| 亚洲欧美日韩精品一区二区 | 亚洲精品系列| 国产一精品一av一免费爽爽| 国产日韩欧美一区二区三区在线观看 | 在线综合亚洲| 深夜日韩欧美| 麻豆国产一区| 少妇久久久久| 亚洲免费影视| 91国内精品| 国产suv精品一区| 欧洲毛片在线视频免费观看| 日韩亚洲在线| 欧美影院视频| 欧美亚洲国产一区| 综合一区av| 欧美天堂一区二区| 色在线视频观看| 日韩欧美在线精品| 91麻豆国产自产在线观看亚洲| 国产精品99免费看| 欧美亚洲自偷自偷| 免费视频亚洲| 国产欧美日韩综合一区在线播放| 国产白浆在线免费观看| 午夜在线播放视频欧美| 久久精品国产精品亚洲毛片| 久久蜜桃精品| 婷婷综合一区| 成人国产精品| 91成人精品观看| 日韩精品2区| 久久久久久色| 日韩成人高清| 亚洲精品高潮| 免费一区二区视频| 米奇777超碰欧美日韩亚洲| 国内精品伊人| 日韩精品午夜视频| 亚洲免费福利一区| 欧美午夜三级| 日韩一区欧美| 久久视频精品| 伊人久久一区| 久久精品国产在热久久| 国产一区二区三区精品在线观看| 亚洲综合电影| 亚洲激情av| 国产高清一区二区| 日韩不卡免费高清视频| 日产精品一区| 精品精品久久| sm久久捆绑调教精品一区| 电影91久久久| 欧美羞羞视频| 99re国产精品| 亚洲专区在线| 亚洲一二av| 日韩欧美2区| 国产精品久久久久久模特| 国产精品自在| 日韩精品影视| 国产色综合网| 国产精品一国产精品| 久久精品一区二区国产| 99久久婷婷| 日韩精品福利一区二区三区| 国际精品欧美精品| 欧美精品一区二区久久| 日韩不卡一二三区| 日韩av福利| 日韩精品成人在线观看| 国产精品一在线观看| 久久要要av| 欧美aa在线视频| 国产精品日韩久久久| 欧美aa在线视频| 亚洲免费福利一区| 久久人人97超碰国产公开结果| 亚洲精品影视| 精品一区在线| 色在线中文字幕| 捆绑调教美女网站视频一区| 久久国产成人| 国产一区二区三区网| 日韩二区三区四区| 丝袜a∨在线一区二区三区不卡| 国产一区二区三区日韩精品| 国产日韩中文在线中文字幕| 免费日韩精品中文字幕视频在线| 国产综合色区在线观看| 久久亚洲黄色| 久久女人天堂| 久久精品女人| 国产免费av一区二区三区| 久久午夜精品一区二区| 影院欧美亚洲| 亚洲成人日韩| 奶水喷射视频一区| 国产精品日韩久久久| 日韩网站在线| 爽好多水快深点欧美视频| 欧美特黄一区| 亚洲韩日在线| 亚洲综合欧美| 亚洲毛片在线| 奇米狠狠一区二区三区| 日韩激情综合| 国产精品中文字幕制服诱惑| 国产精品久久久久久久久久妞妞| 国产区精品区| 欧美国产小视频| 久久一区二区中文字幕| 国产精品美女久久久| 日本中文字幕一区二区视频| 欧美激情日韩| 欧美亚洲激情| 欧美片网站免费| 国产精品久久久久9999高清| 激情国产在线| 免费在线观看精品| 美女在线视频一区| 好看的av在线不卡观看| 日韩国产在线观看| 国产传媒av在线| 亚洲我射av| а√在线中文在线新版| 亚洲一区国产一区| 国产亚洲久久|