一、什麼是Set和List
Java中的Set和List是兩個常用的容器類。Set用於存儲一組唯一的元素,不允許有重複元素;List則可以存儲一組有序的元素,可以有重複元素。
Set介面的常用實現類有HashSet和TreeSet,List介面的常用實現類有ArrayList和LinkedList。
二、Set轉List有什麼用
有時候,我們需要將一個Set轉換為List,比如:
- 需要將Set進行排序或按照一定規則進行排序,而List提供了排序方法
- 需要通過下標獲取Set中的元素,而Set並不支持通過下標獲取元素,List可以通過get()方法獲取指定下標的元素
- 需要將Set轉換為數組進行操作,而List提供了toArray()方法
三、Set轉List的方法
1.使用ArrayList構造方法
public static <T> ArrayList<T> setToList(Set<T> set) { return new ArrayList<T>(set); }
使用ArrayList的構造方法可以將Set轉換為List,將Set作為參數傳遞給ArrayList構造方法,即可得到List。
示例:
Set<String> set = new HashSet<>(); set.add("hello"); set.add("world"); ArrayList<String> list = setToList(set);
2.使用Collections.addAll()方法
public static <T> List<T> setToList(Set<T> set) { List<T> list = new ArrayList<>(); Collections.addAll(list, set.toArray(new T[0])); return list; }
使用Collections.addAll()方法可以將Set轉換為List,將Set轉換為數組,並將數組添加到List中。
示例:
Set<Integer> set = new HashSet<>(); set.add(1); set.add(2); List<Integer> list = setToList(set);
3.使用Stream
public static <T> List<T> setToList(Set<T> set) { return set.stream().collect(Collectors.toList()); }
使用Java 8中的Stream可以將Set轉換為List,通過set.stream()將Set轉換為Stream,然後使用collect()方法和Collectors.toList()將Stream轉換為List。
示例:
Set<String> set = new TreeSet<>(); set.add("hello"); set.add("Java"); List<String> list = setToList(set);
四、總結
在Java開發中,我們經常需要對Set進行轉換操作,將Set轉換為List可以讓我們更方便地對Set進行操作。本文介紹了三種將Set轉換為List的方法,比較簡單易懂,希望可以對讀者有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/296026.html