优化 List<String> list = new ArrayList<>(); list.add("1"); list.add("2"); list.add("3");
时间: 2024-05-16 14:17:15 浏览: 10
可以使用一行代码来初始化和添加元素,如下所示:
```java
List<String> list = Arrays.asList("1", "2", "3");
```
这种方式可以减少代码量,并且可以避免频繁调用 `add()` 方法造成的性能损耗。但需要注意的是,`Arrays.asList()` 返回的是一个不可变的列表,如果需要添加或删除元素,需要将其转化为可变的列表,如下所示:
```java
List<String> list = new ArrayList<>(Arrays.asList("1", "2", "3"));
```
这样就可以在初始化时添加元素,并且后续还可以进行添加或删除操作。
相关问题
List<List<String>> allGroups = new ArrayList<List<String>>();转成List<String>allGroups
将二维列表 `List<List<String>> allGroups` 转换为一维列表 `List<String> allGroups` 可以使用双重循环遍历二维列表并将其元素添加到一维列表中,代码如下:
```java
List<String> allGroups = new ArrayList<String>();
for (List<String> group : allGroups) {
for (String item : group) {
allGroups.add(item);
}
}
```
这段代码首先遍历二维列表 `allGroups` 中的每一个分组 `group`,然后再遍历分组中的每一个元素 `item`,并将其添加到一维列表 `allGroups` 中。这样就可以将二维列表转换为一维列表了。
Map<String, List<String>> oneToManyMap = new HashMap<>(); 和 List<List<String>>的区别
Map<String, List<String>>和List<List<String>>的区别如下:
1. Map<String, List<String>>是一种键值对的数据结构,其中的每个键都对应一个值而值可以是一个字符串列表。通过键可以速查找对应的值。例如,可以使用键来获取与之关联的字符串列表。
2. List<List<String>>是一个嵌套的列表结构,其中的每个元素都是一个字符串列表。它没有键值对的概念,只是一个简单的列表。可以通过索引来访问列表中的元素。例如,可以使用索引来获取嵌套列表中的特定字符串列表。
示例代码如下:
```java
// 创建一个Map<String, List<String>>对象
Map<String, List<String>> oneToManyMap = new HashMap<>();
// 向Map中添加键值对
List<String> list1 = new ArrayList<>();
list1.add("value1");
list1.add("value2");
oneToManyMap.put("key1", list1);
List<String> list2 = new ArrayList<>();
list2.add("value3");
list2.add("value4");
oneToManyMap.put("key2", list2);
// 创建一个List<List<String>>对象
List<List<String>> listOfLists = new ArrayList<>();
// 向列表中添加字符串列表
List<String> innerList1 = new ArrayList<>();
innerList1.add("value1");
innerList1.add("value2");
listOfLists.add(innerList1);
List<String> innerList2 = new ArrayList<>();
innerList2.add("value3");
innerList2.add("value4");
listOfLists.add(innerList2);
// 访问Map中的值
List<String> valuesForKey1 = oneToManyMap.get("key1");
System.out.println(valuesForKey1); // 输出:[value1, value2]
// 访问列表中的元素
List<String> innerList = listOfLists.get(0);
System.out.println(innerList); // 输出:[value1, value2]
```