List从单个数据值构造a的一种简单方法是使用java.utils.Arraysmethod Arrays.asList:
List<String> data = Arrays.asList("ab", "bc", "cd", "ab", "bc", "cd");
所有标准集合的实现都提供了构造函数,该构造函数将另一个集合作为参数,在构造时将所有元素添加到新集合中:
List<String> list = new ArrayList<>(data); // 将按原样添加数据 Set<String> set1 = new HashSet<>(data); // 将添加仅保留唯一值的数据 SortedSet<String> set2 = new TreeSet<>(data); // 将添加保持唯一值和排序的数据 Set<String> set3 = new LinkedHashSet<>(data); // 将添加仅保留唯一值的数据 and preserving the original order
另一个很棒的框架是Google Guava惊人的实用程序类(提供便利的静态方法),用于构造不同类型的标准集合,Lists并且Sets:
import com.google.common.collect.Lists; import com.google.common.collect.Sets; ... List<String> list1 = Lists.newArrayList("ab", "bc", "cd"); List<String> list2 = Lists.newArrayList(data); Set<String> set4 = Sets.newHashSet(data); SortedSet<String> set5 = Sets.newTreeSet("bc", "cd", "ab", "bc", "cd");
类似地,对于映射,Map<String, Object> map可以使用以下所有元素构造一个新映射:
Map<String, Object> map1 = new HashMap<>(map); SortedMap<String, Object> map2 = new TreeMap<>(map);
使用Apache Commons您可以使用阵列中创建映射ArrayUtils.toMap,以及MapUtils.toMap:
import org.apache.commons.lang3.ArrayUtils; ... // 取自org.apache.commons.lang.ArrayUtils#toMap JavaDoc // 创建一个Map映射颜色。 Map colorMap = MapUtils.toMap(new String[][] {{ {"RED", "#FF0000"}, {"GREEN", "#00FF00"}, {"BLUE", "#0000FF"}});
数组的每个元素必须是aMap.Entry或Array,包含至少两个元素,其中第一个元素用作键,第二个元素用作值。
Google Guava框架中的实用程序类名为Maps:
import com.google.common.collect.Maps; ... void howToCreateMapsMethod(Function<? super K,V> valueFunction, Iterable<K> keys1, Set<K> keys2, SortedSet<K> keys3) { ImmutableMap<K, V> map1 = toMap(keys1, valueFunction); // 不变的副本 Map<K, V> map2 = asMap(keys2, valueFunction); // 实时映射视图 SortedMap<K, V> map3 = toMap(keys3, valueFunction); // 实时映射视图 }
使用Stream,
Stream.of("xyz", "abc").collect(Collectors.toList());
要么
Arrays.stream("xyz", "abc").collect(Collectors.toList());