Java集合和数组之间转换
时间: 2024-09-11 12:19:24 浏览: 77
Java集合框架和数组都是数据存储结构,它们之间可以互相转换以便于操作。以下是两者之间的常见转换:
1. **数组转集合**:
- `ArrayList`: 可以通过`Arrays.asList()`方法将一维数组转换为ArrayList,它是一个动态大小的列表。
```java
int[] array = {1, 2, 3};
List<Integer> list = Arrays.asList(array);
```
- 其他数组类型同样可以先转换为基本类型的List,如`Integer[]`转`List<Integer>`。
2. **集合转数组**:
- 对于ArrayList等实现了`List`接口的集合,可以使用`toArray()`方法创建一个新的数组,或者直接指定目标类型的数组(如果类型匹配)。
```java
List<Integer> list = new ArrayList<>();
int[] newArray = list.toArray(new Integer[0]);
```
3. **ArrayList转固定长度数组**:
如果需要的是固定长度的数组,可以遍历ArrayList并复制元素到新数组。
4. **数组转Map**: 如果数组代表键值对,可以使用`Collectors.toMap()`方法配合Stream,将其转换成HashMap。
相关问题
集合和数组可以通过相应的toArray和Arrays.asList()方法进行相互转换
是的,集合和数组可以通过相应的 `toArray()` 和 `Arrays.asList()` 方法进行相互转换。
1. 数组转换为集合:
使用 `Arrays.asList()` 方法可以将数组转换为相应的集合。例如:
```
String[] array = {"Java", "Python", "C++"};
List<String> list = Arrays.asList(array);
```
上面的代码将 `String` 类型的数组 `array` 转换为了 `List<String>` 类型的集合 `list`。
需要注意的是,`Arrays.asList()` 方法返回的集合是一个固定大小的集合,不能进行添加或者删除元素的操作。如果需要进行添加或者删除元素的操作,可以先将数组转换为 `ArrayList`,例如:
```
String[] array = {"Java", "Python", "C++"};
List<String> list = new ArrayList<>(Arrays.asList(array));
```
2. 集合转换为数组:
使用 `toArray()` 方法可以将集合转换为相应的数组。例如:
```
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
String[] array = list.toArray(new String[list.size()]);
```
上面的代码将 `List<String>` 类型的集合 `list` 转换为了 `String` 类型的数组 `array`。需要注意的是,在使用 `toArray()` 方法时需要指定数组的类型以及数组的大小。
阅读全文