java集合——集合与数组间的转换+算法
【0】README
0.1) 本文描述轉(zhuǎn)自 core java volume 1, 源代碼為原創(chuàng),旨在理解 java集合——集合與數(shù)組間的轉(zhuǎn)換+算法 的相關(guān)知識(shí);
0.2) for full source code , please visit https://github.com/pacosonTang/core-java-volume/blob/master/chapter13/CollectionAndArray.java + https://github.com/pacosonTang/core-java-volume/blob/master/chapter13/AlgTest.java
【1】集合與數(shù)組間的轉(zhuǎn)換
1.1)數(shù)組轉(zhuǎn)換為集合: Arrays.asList 的包裝器提供了這個(gè)功能:
HashSet<String> numbers = new HashSet<>(Arrays.asList(new String[]{"1", "7", "6"}));1.2)集合轉(zhuǎn)換為數(shù)組:toArray()
Object[] values = numbers.toArray();1.3)出現(xiàn)的問題:
1.4)解決方法: 必須使用另外一種toArray 方法, 并將其設(shè)計(jì)為所希望的元素類型且長(zhǎng)度為0的數(shù)組。(這樣情況下,沒有創(chuàng)建任何新數(shù)組)
Attention)如果把 HashSet 換為 List接口的實(shí)現(xiàn)類的話,不會(huì)存在這種問題;
【2】算法——排序與混排
2.1)Collections類中的sort方法可以對(duì)實(shí)現(xiàn)了 List 接口的集合進(jìn)行排序:
List<String> staff = new LinkedList<>(); .... Collections.sort(staff)- 2.1.1)這個(gè)方法假定列表元素實(shí)現(xiàn)了Comparable 接口。如果要采用其他方式對(duì)列表進(jìn)行排序,需要將 Comparator 對(duì)象作為第二個(gè)參數(shù)傳遞給 sort 方法;
- 2.1.2)看個(gè)荔枝:
- 2.1.3)如果想降序?qū)α斜磉M(jìn)行排序, 可以使用靜態(tài)方法 Collections.reverseOrder()方法, 該方法返回 比較器,比較器返回 b.compareTo(a), 如:
2.2) 有關(guān)術(shù)語(yǔ)定義:
- 2.2.1)如果列表支持set方法,則是可修改的;
- 2.2.2)如果列表支持 add 和 remove 方法, 則是可改變大小的;
- 2.2.3)Collections 有一個(gè)方法 shufffle, 其功能和 排序切好相反。 即隨機(jī)混排列列表中的元素順序, 如:
- 如果提供的列表沒有實(shí)現(xiàn) RandomAccess 接口, shuffle 方法將元素復(fù)制到數(shù)組中。 然后打亂數(shù)組元素的順序, 最后再將打亂順序后的元素copy 回 列表;
2.3)看個(gè)荔枝:
總結(jié)
以上是生活随笔為你收集整理的java集合——集合与数组间的转换+算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 铅笔姓什么 脑筋急转弯及答案请查收
- 下一篇: java集合——遗留的集合