java集合——集合与数组间的转换+算法
生活随笔
收集整理的這篇文章主要介紹了
java集合——集合与数组间的转换+算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【0】README
0.1) 本文描述轉自 core java volume 1, 源代碼為原創,旨在理解 java集合——集合與數組間的轉換+算法 的相關知識;
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】集合與數組間的轉換
1.1)數組轉換為集合: Arrays.asList 的包裝器提供了這個功能:
HashSet<String> numbers = new HashSet<>(Arrays.asList(new String[]{"1", "7", "6"}));1.2)集合轉換為數組:toArray()
Object[] values = numbers.toArray();1.3)出現的問題:
1.4)解決方法: 必須使用另外一種toArray 方法, 并將其設計為所希望的元素類型且長度為0的數組。(這樣情況下,沒有創建任何新數組)
Attention)如果把 HashSet 換為 List接口的實現類的話,不會存在這種問題;
【2】算法——排序與混排
2.1)Collections類中的sort方法可以對實現了 List 接口的集合進行排序:
List<String> staff = new LinkedList<>(); .... Collections.sort(staff)- 2.1.1)這個方法假定列表元素實現了Comparable 接口。如果要采用其他方式對列表進行排序,需要將 Comparator 對象作為第二個參數傳遞給 sort 方法;
- 2.1.2)看個荔枝:
- 2.1.3)如果想降序對列表進行排序, 可以使用靜態方法 Collections.reverseOrder()方法, 該方法返回 比較器,比較器返回 b.compareTo(a), 如:
2.2) 有關術語定義:
- 2.2.1)如果列表支持set方法,則是可修改的;
- 2.2.2)如果列表支持 add 和 remove 方法, 則是可改變大小的;
- 2.2.3)Collections 有一個方法 shufffle, 其功能和 排序切好相反。 即隨機混排列列表中的元素順序, 如:
- 如果提供的列表沒有實現 RandomAccess 接口, shuffle 方法將元素復制到數組中。 然后打亂數組元素的順序, 最后再將打亂順序后的元素copy 回 列表;
2.3)看個荔枝:
總結
以上是生活随笔為你收集整理的java集合——集合与数组间的转换+算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 铅笔姓什么 脑筋急转弯及答案请查收
- 下一篇: java集合——遗留的集合