List初始化的方式
在 Java 中,List
的初始化有多种方式,下面列出了几种常见的方法:
-
使用
ArrayList
进行初始化:List<String> list = new ArrayList<>();
-
使用
Arrays.asList()
:List<String> list = Arrays.asList("apple", "banana", "orange"); // 注意:`Arrays.asList()` 返回的是固定大小的列表,不能增加或删除元素。
-
使用
Collections.singletonList()
(初始化一个只包含一个元素的不可变列表):List<String> list = Collections.singletonList("apple");
-
使用 Java 9+ 的
List.of()
方法(不可变列表):List<String> list = List.of("apple", "banana", "orange");
-
使用
Stream
或Collectors.toList()
:List<String> list = Stream.of("apple", "banana", "orange").collect(Collectors.toList());
-
使用
new ArrayList<>(Arrays.asList())
来创建可变列表:List<String> list = new ArrayList<>(Arrays.asList("apple", "banana", "orange")); // 可以对该列表进行增删操作。
根据你的需求,如果需要一个可修改的列表,推荐使用 new ArrayList<>()
,如果需要不可修改的列表,可以使用 List.of()
。
Map初始化的方式
在 Java 中,Map
的初始化有多种方式,下面列出了几种常见的方法:
-
使用
HashMap
进行初始化:Map<String, Integer> map = new HashMap<>();
-
使用
Collections.singletonMap()
(创建一个只包含一个键值对的不可变 Map):Map<String, Integer> map = Collections.singletonMap("key", 1);
-
使用
Map.of()
(Java 9+)创建不可变 Map:- 创建最多 10 个键值对:
Map<String, Integer> map = Map.of("key1", 1, "key2", 2, "key3", 3);
- 注意:
Map.of()
创建的 Map 是不可修改的。
- 创建最多 10 个键值对:
-
使用
Map.ofEntries()
(Java 9+)创建不可变 Map(可用于较多键值对):Map<String, Integer> map = Map.ofEntries( Map.entry("key1", 1), Map.entry("key2", 2), Map.entry("key3", 3) );
-
使用
new HashMap<>()
和put()
方法(手动添加键值对):Map<String, Integer> map = new HashMap<>(); map.put("key1", 1); map.put("key2", 2); map.put("key3", 3);
-
使用
Stream
和Collectors.toMap()
:Map<String, Integer> map = Stream.of(new Object[][] { { "key1", 1 }, { "key2", 2 }, { "key3", 3 }, }).collect(Collectors.toMap(data -> (String) data[0], data -> (Integer) data[1]));
-
使用
new HashMap<>(Map.of())
创建可修改的 Map:Map<String, Integer> map = new HashMap<>(Map.of("key1", 1, "key2", 2)); // 可以对该 Map 进行增删操作
根据你的需求,如果需要可变的 Map
,推荐使用 HashMap
,如果需要不可变的 Map
,可以使用 Map.of()
或 Map.ofEntries()
。
String[] 初始化的方式
在 Java 中,初始化 String[]
(字符串数组)有多种方式,下面列出了一些常见的方法:
-
指定大小进行初始化(元素默认为
null
):String[] array = new String[5]; // 创建一个长度为 5 的数组,所有元素初始为 null
-
使用大括号直接初始化数组:
String[] array = {"apple", "banana", "orange"};
-
使用
new
关键字并同时初始化:String[] array = new String[] {"apple", "banana", "orange"};
-
逐个赋值:
String[] array = new String[3]; array[0] = "apple"; array[1] = "banana"; array[2] = "orange";
-
从列表转换为数组(适用于有
List<String>
时):List<String> list = Arrays.asList("apple", "banana", "orange"); String[] array = list.toArray(new String[0]);
-
使用
Stream
和Collectors.toList()
转换成数组(Java 8+):String[] array = Stream.of("apple", "banana", "orange").toArray(String[]::new);
每种方法可以根据不同的需求进行选择。如果你需要明确指定数组的长度,可以使用第一种方式;如果你想同时初始化元素,可以选择第二种或第三种方式。