使用第一个元素和附加集合进行列表初始化
List initialialization with a first element and an additional collection
有没有shorthand方式(可以是guava或者任何lib)来初始化一个Java List 像这样?
List list = MagicListUtil.newArrayList(firstElement, moreElementsList);
是的,您可以简单地使用 java.util.Arrays class 来表示单个和多个元素。
List<String> strings = Arrays.asList("first", "second", "third");
您可以将 java.util.Collections 用于包含单个元素的列表。
List<String> strings = Collections.singletonList("first");
Guava 提供了多种可能性
如果你有数组,使用Lists.asList(...)
String first = "first";
String[] rest = { "second", "third" };
List<String> list = Lists.asList(first, rest);
如果您有列表或其他 Iterables
,请使用 FluentIterable.of(...).append(...).toList()
:
String first = "first";
List<String> rest = Arrays.asList("second", "third");
List<String> list = FluentIterable.of(first).append(rest).toList();
但你也可以在 Java 8 中做到这一点
虽然,它更冗长,但仍然...
用数组
String first = "first";
String[] rest = { "second", "third" };
List<String> list = Stream.concat(Stream.of(first), Arrays.stream(rest))
.collect(Collectors.toList());
有了Collection
String first = "first";
List<String> rest = Arrays.asList("second", "third");
List<String> list = Stream.concat(Stream.of(first), rest.stream())
.collect(Collectors.toList());
如果你想复制列表,你可以像这样通过构造函数来完成
List<Float> oldList = new ArrayList<>();
List<Float> newList = new ArrayList<>(oldList);
有没有shorthand方式(可以是guava或者任何lib)来初始化一个Java List 像这样?
List list = MagicListUtil.newArrayList(firstElement, moreElementsList);
是的,您可以简单地使用 java.util.Arrays class 来表示单个和多个元素。
List<String> strings = Arrays.asList("first", "second", "third");
您可以将 java.util.Collections 用于包含单个元素的列表。
List<String> strings = Collections.singletonList("first");
Guava 提供了多种可能性
如果你有数组,使用Lists.asList(...)
String first = "first";
String[] rest = { "second", "third" };
List<String> list = Lists.asList(first, rest);
如果您有列表或其他 Iterables
,请使用 FluentIterable.of(...).append(...).toList()
:
String first = "first";
List<String> rest = Arrays.asList("second", "third");
List<String> list = FluentIterable.of(first).append(rest).toList();
但你也可以在 Java 8 中做到这一点
虽然,它更冗长,但仍然...
用数组
String first = "first";
String[] rest = { "second", "third" };
List<String> list = Stream.concat(Stream.of(first), Arrays.stream(rest))
.collect(Collectors.toList());
有了Collection
String first = "first";
List<String> rest = Arrays.asList("second", "third");
List<String> list = Stream.concat(Stream.of(first), rest.stream())
.collect(Collectors.toList());
如果你想复制列表,你可以像这样通过构造函数来完成
List<Float> oldList = new ArrayList<>();
List<Float> newList = new ArrayList<>(oldList);