日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java集合——集合与数组间的转换+算法

發(fā)布時(shí)間:2023/12/3 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java集合——集合与数组间的转换+算法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【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), 如:
Collections.sort(staff, Collections.reverseOrder());

2.2) 有關(guān)術(shù)語(yǔ)定義:

  • 2.2.1)如果列表支持set方法,則是可修改的;
  • 2.2.2)如果列表支持 add 和 remove 方法, 則是可改變大小的;
  • 2.2.3)Collections 有一個(gè)方法 shufffle, 其功能和 排序切好相反。 即隨機(jī)混排列列表中的元素順序, 如:
ArrayList<String> staff = ...; Collections.shuffle(staff);
  • 如果提供的列表沒有實(shí)現(xiàn) RandomAccess 接口, shuffle 方法將元素復(fù)制到數(shù)組中。 然后打亂數(shù)組元素的順序, 最后再將打亂順序后的元素copy 回 列表;

2.3)看個(gè)荔枝:

API java.util.Collections 1.2 static <T extends Comparable<? super T>> void sort(List<T> elements) static <T> void sort(List<T> elements, Comparator<? super T> c) static void shuffle(List<?> elements) static void shuffle(List<?> elements, Random r) static <T> Comparator<T> reverseOrder(): 返回一個(gè)比較器, 它用與 Comparable 接口的compareTo 方法規(guī)定的順序的逆序?qū)υ剡M(jìn)行排序; static <T> Comparator<T> reverseOrder(Comparator<T> comp): 返回一個(gè)比較器, 它用與 comp 給定的順序的逆序?qū)υ剡M(jìn)行排序;

總結(jié)

以上是生活随笔為你收集整理的java集合——集合与数组间的转换+算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。