我想在Java中将数组转换为Set。有一些明显的方法可以做到这一点(即使用循环),但我想做一些更整洁的事情,比如:
java.util.Arrays.asList(Object[] a);
有什么想法吗?
我想在Java中将数组转换为Set。有一些明显的方法可以做到这一点(即使用循环),但我想做一些更整洁的事情,比如:
java.util.Arrays.asList(Object[] a);
有什么想法吗?
当前回答
private Map<Integer, Set<Integer>> nobreaks = new HashMap();
nobreaks.put(1, new HashSet(Arrays.asList(new int[]{2, 4, 5})));
System.out.println("expected size is 3: " +nobreaks.get(1).size());
输出为
expected size is 3: 1
将其更改为
nobreaks.put(1, new HashSet(Arrays.asList( 2, 4, 5 )));
输出为
expected size is 3: 3
其他回答
使用stanford-stagger-3.0.jar中的CollectionUtils或ArrayUtils
import static edu.stanford.nlp.util.ArrayUtils.asSet;
or
import static edu.stanford.nlp.util.CollectionUtils.asSet;
...
String [] array = {"1", "q"};
Set<String> trackIds = asSet(array);
private Map<Integer, Set<Integer>> nobreaks = new HashMap();
nobreaks.put(1, new HashSet(Arrays.asList(new int[]{2, 4, 5})));
System.out.println("expected size is 3: " +nobreaks.get(1).size());
输出为
expected size is 3: 1
将其更改为
nobreaks.put(1, new HashSet(Arrays.asList( 2, 4, 5 )));
输出为
expected size is 3: 3
在Java 10中:
String[] strs = {"A", "B"};
Set<String> set = Set.copyOf(Arrays.asList(strs));
Set.copyOf返回包含给定集合元素的不可修改集合。
给定的集合不能为null,并且不能包含任何null元素。
Set<T> b = new HashSet<>(Arrays.asList(requiredArray));
在完成Arrays.asList(array)之后,可以执行Setset=newHashSet(list);
下面是一个示例方法,您可以编写:
public <T> Set<T> GetSetFromArray(T[] array) {
return new HashSet<T>(Arrays.asList(array));
}