博客
关于我
Java List初始化的六种方式
阅读量:796 次
发布时间:2023-03-28

本文共 1822 字,大约阅读时间需要 6 分钟。

List 是 Java 开发中常用的集合类型之一,了解如何初始化 List 可以帮助开发者更高效地编写代码。本文将介绍几种常用的初始化方式,并提供实际的代码示例供参考。

常规方式

最常见的初始化 List 的方法是使用 ArrayList。以下是一个典型的示例:

List
languages = new ArrayList<>();languages.add("Java");languages.add("PHP");languages.add("Python");System.out.println(languages);

这种方式直观且简单,尤其是在 JDK 7 之后,可以省略具体类型,让 IDE 自动推断。

Arrays 工具类

Arrays 工具类提供了一个 asList 方法,可以将数组转换为 List。需要注意的是,返回的 List 是不可变的:

import static java.util.Arrays.asList;List
jdks = asList("JDK6", "JDK8", "JDK10");System.out.println(jdks);

如果需要可变的 List,可以将返回的 List 包装到 ArrayList 中:

List
numbers = new ArrayList<>(Arrays.asList("1", "2", "3"));numbers.add("4");System.out.println(numbers);

Collections 工具类

Collections 提供了多种工具类来初始化 List,例如 nCopiessingletonList

List
apples = Collections.nCopies(3, "apple");System.out.println(apples); // [apple, apple, apple]

如果需要可变的 List,可以将其包装到 ArrayList 中:

List
dogs = new ArrayList<>(Collections.nCopies(3, "dog"));dogs.add("dog");System.out.println(dogs);

此外,singletonList 创建一个不可变的 List,包含单个元素:

List
cat = Collections.singletonList("cat");System.out.println(cat);

匿名内部类

使用匿名内部类可以创建一个 ArrayList:

List
names = new ArrayList
() { { add("Tom"); add("Sally"); add("John"); }};System.out.println(names);

这种方式虽然看起来高级,但在实际应用中使用较少,因为代码难以维护。

JDK 8 Stream

JDK 8 引入了 Stream API,可以通过 Stream 的方式创建 List:

import static java.util.stream.Collectors.toList;List
colors = Stream.of("blue", "red", "yellow") .collect(toList());System.out.println(colors);

需要注意的是,需要导入 Collectors.toList 方法。

JDK 9 List.of

JDK 9 增加了 List.of 方法,可以创建不可变的 List:

List
cups = List.of("A", "B", "C");System.out.println(cups);

这种方式适用于只读场景,且 List 是不可变的。

总结

以上是几种常用的 List 初始化方式,每种方式适用于不同的场景。选择合适的方法可以提高代码的可读性和效率。在实际开发中,可以根据项目需求选择最适合的方式。

转载地址:http://fthfk.baihongyu.com/

你可能感兴趣的文章
Objective-C实现base85 编码算法(附完整源码)
查看>>
Objective-C实现basic graphs基本图算法(附完整源码)
查看>>
Objective-C实现BCC校验计算(附完整源码)
查看>>
Objective-C实现bead sort珠排序算法(附完整源码)
查看>>
Objective-C实现BeadSort珠排序算法(附完整源码)
查看>>
Objective-C实现bellman-ford贝尔曼-福特算法(附完整源码)
查看>>
Objective-C实现bellman-ford贝尔曼-福特算法(附完整源码)
查看>>
Objective-C实现BellmanFord贝尔曼-福特算法(附完整源码)
查看>>
Objective-C实现BF算法 (附完整源码)
查看>>
Objective-C实现binary exponentiation二进制幂运算算法(附完整源码)
查看>>
Objective-C实现binomial coefficient二项式系数算法(附完整源码)
查看>>
Objective-C实现CaesarsCiphe凯撒密码算法(附完整源码)
查看>>
Objective-C实现check strong password检查密码强度算法(附完整源码)
查看>>
Objective-C实现circle sort圆形排序算法(附完整源码)
查看>>
Objective-C实现coulombs law库仑定律算法(附完整源码)
查看>>
Objective-C实现DBSCAN聚类算法(附完整源码)
查看>>
Objective-C实现dijkstra银行家算法(附完整源码)
查看>>
Objective-C实现Dinic算法(附完整源码)
查看>>
Objective-C实现disjoint set不相交集算法(附完整源码)
查看>>
Objective-C实现DisjointSet并查集的算法(附完整源码)
查看>>