我们创建一个Set为:
Set myset = new HashSet()
我们如何在Java中创建一个列表?
我们创建一个Set为:
Set myset = new HashSet()
我们如何在Java中创建一个列表?
当前回答
下面是一些创建列表的方法。
这将创建一个固定大小的列表,添加/删除元素是不可能的,如果你尝试这样做,它将抛出java.lang.UnsupportedOperationException。
List<String> fixedSizeList = Arrays.asList(new String[] {"Male", "Female"});
List<String> fixedSizeList = Arrays.asList("Male", "Female");
List<String> fixedSizeList = List.of("Male", "Female"); //from java9
以下版本是一个简单的列表,您可以在其中添加/删除任意数量的元素。 List<String> List = new ArrayList<>();
这是如何在java中创建一个LinkedList,如果你需要频繁地插入/删除列表上的元素,你应该使用LinkedList而不是ArrayList List<String> linkedList = new linkedList <>();
其他回答
有时候,你可能想要一个新的LinkedList,而不是一个新的ArrayList。从ArrayList开始,如果你有性能问题,并且有证据表明是这个列表出了问题,然后在这个列表上进行大量的添加和删除,然后-不是之前-切换到LinkedList,看看情况是否有所改善。但总的来说,还是用数组列表就好了。
一个例子:
List somelist = new ArrayList();
您可以查看javadoc for List,并找到包含在java api中的List接口的所有已知实现类。
使用Eclipse Collections,你可以创建一个这样的List:
List<String> list1 = Lists.mutable.empty();
List<String> list2 = Lists.mutable.of("One", "Two", "Three");
如果你想要一个不可变列表:
ImmutableList<String> list3 = Lists.immutable.empty();
ImmutableList<String> list4 = Lists.immutable.of("One", "Two", "Three");
您可以通过使用原语列表来避免自动装箱。下面是创建int列表的方法:
MutableIntList list5 = IntLists.mutable.empty();
MutableIntList list6 = IntLists.mutable.of(1, 2, 3);
ImmutableIntList list7 = IntLists.immutable.empty();
ImmutableIntList list8 = IntLists.immutable.of(1, 2, 3);
所有8个原语都有变体。
MutableLongList longList = LongLists.mutable.of(1L, 2L, 3L);
MutableCharList charList = CharLists.mutable.of('a', 'b', 'c');
MutableShortList shortList = ShortLists.mutable.of((short) 1, (short) 2, (short) 3);
MutableByteList byteList = ByteLists.mutable.of((byte) 1, (byte) 2, (byte) 3);
MutableBooleanList booleanList = BooleanLists.mutable.of(true, false);
MutableFloatList floatList = FloatLists.mutable.of(1.0f, 2.0f, 3.0f);
MutableDoubleList doubleList = DoubleLists.mutable.of(1.0, 2.0, 3.0);
注意:我是Eclipse Collections的提交者。
此外,如果你想创建一个列表,其中有东西(尽管它将是固定大小):
List<String> messages = Arrays.asList("Hello", "World!", "How", "Are", "You");
List是一个类似Set的接口,它有ArrayList和LinkedList作为通用实现。
我们可以创建List为:
List<String> arrayList = new ArrayList<>();
List<String> linkedList = new LinkedList<>();
我们还可以创建一个固定大小的列表:
List<String> list = Arrays.asList("A", "B", "C");
我们几乎总是使用数组列表而不是LinkedList实现:
LinkedList为对象使用了大量的空间,当我们有很多元素时,它的性能很差。 与ArrayList中的O(1)相比,LinkedList中的任何索引操作都需要O(n)时间。 点击这个链接了解更多信息。
由数组创建的列表。上面的asList不能在结构上被修改,但它的元素仍然可以被修改。
Java 8
根据文档,Collections方法。unmodifiableList返回指定列表的不可修改视图。我们可以这样得到:
Collections.unmodifiableList(Arrays.asList("A", "B", "C"));
Java 9
如果我们使用Java 9,那么:
List<String> list = List.of("A", "B");
Java 10
如果我们使用的是Java 10,那么使用collections方法。unmodifiableList将返回一个在Java 9中引入的真正不可修改的列表实例。检查这个答案,以了解更多关于集合差异的信息。unmodifiableList vs collector。unmodifiableList在Java 10中。