我们创建一个Set为:

Set myset = new HashSet()

我们如何在Java中创建一个列表?


当前回答

List list = new ArrayList();

或者使用泛型

List<String> list = new ArrayList<String>();

当然,你也可以用任何类型的变量替换字符串,比如Integer。

其他回答

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中。

List arrList = new ArrayList();

最好按照下面的建议使用泛型:

List<String> arrList = new ArrayList<String>();

arrList.add("one");

如果你使用LinkedList。

List<String> lnkList = new LinkedList<String>();
//simple example creating a list form a string array

String[] myStrings = new String[] {"Elem1","Elem2","Elem3","Elem4","Elem5"};

List mylist = Arrays.asList(myStrings );

//getting an iterator object to browse list items

Iterator itr= mylist.iterator();

System.out.println("Displaying List Elements,");

while(itr.hasNext())

  System.out.println(itr.next());

列表可以通过多种方式创建:

1 -构造函数初始化

List是一个接口,可以通过以下方式创建List实例:

List<Integer> list=new ArrayList<Integer>();
List<Integer> llist=new LinkedList<Integer>();
List<Integer> stack=new Stack<Integer>();

2-使用Arrays.asList()

List<Integer> list=Arrays.asList(1, 2, 3);

3-使用Collections类方法

空列表

List<Integer> list = Collections.EMPTY_LIST;

OR

List<Integer> list = Collections.emptyList();

Collections.addAll(list = new ArrayList<Integer>(), 1, 2, 3, 4);

无法改变的列表

List<Integer> list = Collections
        .unmodifiableList(Arrays.asList(1, 2, 3));

单例对象列表

List<Integer> list = Collections.singletonList(2);

你可以从下面的参考链接中找到更多的方法。

参考:

https://www.geeksforgeeks.org/initializing-a-list-in-java/

用Java 8做同样的事情有更多的选择,不是更好,也不是更差,只是不同,如果你想用列表做一些额外的工作,Streams将为你提供更多的选择(过滤,映射,减少等)。

List<String> listA = Stream.of("a", "B", "C").collect(Collectors.toList());
List<Integer> listB = IntStream.range(10, 20).boxed().collect(Collectors.toList());
List<Double> listC = DoubleStream.generate(() -> { return new Random().nextDouble(); }).limit(10).boxed().collect(Collectors.toList());
LinkedList<Integer> listD = Stream.iterate(0, x -> x++).limit(10).collect(Collectors.toCollection(LinkedList::new));