開心一笑
【公路上發(fā)生了一起車禍——烏龜踩傷了窩牛叭喜。
警察正在調(diào)查事故原因說(shuō)窩牛:烏龜是怎么撞 到你的贺拣?
正吊著石膏的窩牛驚惶未定地回憶道:我不記得了,當(dāng)時(shí)他的速度太快了捂蕴!】
提出問(wèn)題
CollectionUtils在真實(shí)項(xiàng)目中常用的方法有哪些譬涡??啥辨?
解決問(wèn)題
唯美圖片
CollectionUtils在真實(shí)項(xiàng)目中涡匀,是一個(gè)非常好用的工具類,使用非常頻繁溉知。它可以使代碼更加簡(jiǎn)潔和安全陨瘩。剛好在工作中利用這個(gè)工具類重構(gòu)代碼腊嗡,順便總結(jié)下分享分享:
并集
@Test
public void testUnion(){
String[] arrayA = new String[] { "A", "B", "C", "D", "E", "F" };
String[] arrayB = new String[] { "B", "D", "F", "G", "H", "K" };
List<String> listA = Arrays.asList(arrayA);
List<String> listB = Arrays.asList(arrayB);
//2個(gè)數(shù)組取并集
System.out.println(ArrayUtils.toString(CollectionUtils.union(listA, listB)));
//[A, B, C, D, E, F, G, H, K]
}
交集
@Test
public void testIntersection(){
String[] arrayA = new String[] { "A", "B", "C", "D", "E", "F" };
String[] arrayB = new String[] { "B", "D", "F", "G", "H", "K" };
List<String> listA = Arrays.asList(arrayA);
List<String> listB = Arrays.asList(arrayB);
//2個(gè)數(shù)組取交集
System.out.println(ArrayUtils.toString(CollectionUtils.intersection(listA, listB)));
//[B, D, F]
}
交集的補(bǔ)集(析取)
@Test
public void testDisjunction(){
String[] arrayA = new String[] { "A", "B", "C", "D", "E", "F" };
String[] arrayB = new String[] { "B", "D", "F", "G", "H", "K" };
List<String> listA = Arrays.asList(arrayA);
List<String> listB = Arrays.asList(arrayB);
//2個(gè)數(shù)組取交集 的補(bǔ)集
System.out.println(ArrayUtils.toString(CollectionUtils.disjunction(listA, listB)));
//[A, C, E, G, H, K]
}
差集(扣除)
@Test
public void testSubtract(){
String[] arrayA = new String[] { "A", "B", "C", "D", "E", "F" };
String[] arrayB = new String[] { "B", "D", "F", "G", "H", "K" };
List<String> listA = Arrays.asList(arrayA);
List<String> listB = Arrays.asList(arrayB);
//arrayA扣除arrayB
System.out.println(ArrayUtils.toString(CollectionUtils.subtract(listA, listB)));
//[A, C, E]
}
集合是否為空
@Test
public void testIsEmpty(){
class Person{}
class Girl extends Person{}
List<Integer> first = new ArrayList<>();
List<Integer> second = null;
List<Person> boy = new ArrayList<>();
//每個(gè)男孩心里都裝著一個(gè)女孩
boy.add(new Girl());
//判斷集合是否為空
System.out.println(CollectionUtils.isEmpty(first)); //true
System.out.println(CollectionUtils.isEmpty(second)); //true
System.out.println(CollectionUtils.isEmpty(boy)); //false
//判斷集合是否不為空
System.out.println(CollectionUtils.isNotEmpty(first)); //false
System.out.println(CollectionUtils.isNotEmpty(second)); //false
System.out.println(CollectionUtils.isNotEmpty(boy)); //true
}
集合是否相等
@Test
public void testIsEqual(){
class Person{}
class Girl extends Person{
}
List<Integer> first = new ArrayList<>();
List<Integer> second = new ArrayList<>();
first.add(1);
first.add(2);
second.add(2);
second.add(1);
Girl goldGirl = new Girl();
List<Person> boy1 = new ArrayList<>();
//每個(gè)男孩心里都裝著一個(gè)女孩
boy1.add(new Girl());
List<Person> boy2 = new ArrayList<>();
//每個(gè)男孩心里都裝著一個(gè)女孩
boy2.add(new Girl());
//比較兩集合值
System.out.println(CollectionUtils.isEqualCollection(first,second)); //true
System.out.println(CollectionUtils.isEqualCollection(first,boy1)); //false
System.out.println(CollectionUtils.isEqualCollection(boy1,boy2)); //false
List<Person> boy3 = new ArrayList<>();
//每個(gè)男孩心里都裝著一個(gè)女孩
boy3.add(goldGirl);
List<Person> boy4 = new ArrayList<>();
boy4.add(goldGirl);
System.out.println(CollectionUtils.isEqualCollection(boy3,boy4)); //true
}
不可修改的集合
我們對(duì)c進(jìn)行操作拾酝,s也同樣獲得了和c相同的內(nèi)容,這樣就可以避免其他人員修改這個(gè)s對(duì)象卡者。有時(shí)候需要對(duì)它進(jìn)行保護(hù)蒿囤,避免返回結(jié)果被人修改。
@Test
public void testUnmodifiableCollection(){
Collection<String> c = new ArrayList<>();
Collection<String> s = CollectionUtils.unmodifiableCollection(c);
c.add("boy");
c.add("love");
c.add("girl");
//! s.add("have a error");
System.out.println(s);
}
Collections.unmodifiableCollection可以得到一個(gè)集合的鏡像崇决,它的返回結(jié)果是不可直接被改變材诽,否則會(huì)提示錯(cuò)誤
java.lang.UnsupportedOperationException
at org.apache.commons.collections.collection.UnmodifiableCollection.add(UnmodifiableCollection.java:75)
唯美圖片
讀書感悟
來(lái)自《燦爛千陽(yáng)》
- 人們數(shù)不清她的屋頂上有多少輪皎潔的明月,也數(shù)不清她的墻壁之后那一千個(gè)燦爛的太陽(yáng)。
- 一千個(gè)燦爛的陽(yáng)光能否驅(qū)散阿富汗的硝煙所帶來(lái)的黑暗恒傻,唯有愛才能讓我們看到這燦爛千陽(yáng)脸侥。
- 我們常說(shuō),要心懷善心盈厘,幫助他人睁枕。別人有困難,我們幫忙沸手,理所應(yīng)當(dāng)外遇,可當(dāng)我們自己出現(xiàn)麻煩時(shí),我們是應(yīng)該先照顧自己還是先關(guān)心別人呢契吉。其實(shí)問(wèn)題很簡(jiǎn)單跳仿,你想幫助他人需要有你這個(gè)實(shí)體存在,如果你不在了捐晶,就無(wú)法幫助別人了菲语。所以說(shuō),當(dāng)別人出現(xiàn)問(wèn)題時(shí)惑灵,你恰巧也出現(xiàn)問(wèn)題山上,應(yīng)該先自救,然后再救人英支。社會(huì)上很多人胶哲,自己心理都有問(wèn)題還經(jīng)常去安撫別人,結(jié)果是別人沒幫助到自己也掛了潭辈。
- 人生就是這樣的鸯屿,在心碎之后,我們還得忍受一次又一次的悲傷把敢。
- 每一片雪花都是人間某個(gè)悲哀的女人嘆出的一口氣寄摆。
參考文章
【2】在線文檔
【3】JAVA集合操作的利器:CollectionUtils
【4】apache commons collections CollectionUtils工具類簡(jiǎn)單使用
【6】Collections.unmodifiableCollection
其他
如果有帶給你一絲絲小快樂,就讓快樂繼續(xù)傳遞下去修赞,歡迎轉(zhuǎn)載婶恼,點(diǎn)贊桑阶,頂,歡迎留下寶貴的意見勾邦,多謝支持蚣录!