把一个List<String>转换成List<Integer>
时间: 2023-11-11 09:11:01 浏览: 40
可以使用Java 8中的Stream API和Lambda表达式来实现将List<String>转换为List<Integer>的操作。具体代码如下所示:
```
List<String> stringList = Arrays.asList("1", "2", "3", "4", "5");
List<Integer> integerList = stringList.stream()
.map(Integer::parseInt)
.collect(Collectors.toList());
```
首先,我们使用Arrays.asList创建了一个包含一些字符串的List。然后,我们调用stream()方法将其转换成一个Stream对象。接着,我们使用map()方法将每个字符串转换成对应的整数,并使用Integer.parseInt()方法进行转换。最后,我们调用collect()方法将转换后的整数收集到一个新的List中。
相关问题
List<String> 转换List<Integer>
可以使用Java 8中的Stream API来将`List<String>`转换为`List<Integer>`,示例代码如下:
```
List<String> stringList = Arrays.asList("1", "2", "3", "4");
List<Integer> intList = stringList.stream().map(Integer::parseInt).collect(Collectors.toList());
```
上述代码中,`stringList`是一个包含字符串元素的`List`,`intList`是将`stringList`中的元素转换为整数后得到的`List`。具体来说,我们使用`stream()`方法将`stringList`转换为`Stream`,然后使用`map()`方法将每个字符串元素转换为整数,最后使用`collect()`方法将转换后的整数元素收集为一个`List`对象。
需要注意的是,如果`stringList`中包含非数字字符串,则上述代码会抛出`NumberFormatException`异常。在实际使用中,我们需要根据具体情况进行错误处理。
list<String>转换成list<student>数据结构
这里假设List<String>中每个字符串包含的信息是学生的姓名和年龄,以逗号分隔。
可以使用Java 8的Stream API来进行转换,具体步骤如下:
1. 定义一个Student类,包含姓名和年龄属性:
```java
public class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
// getter和setter方法省略
}
```
2. 使用Stream API进行转换:
```java
List<String> stringList = Arrays.asList("Tom,18", "Jerry,20", "Alice,19");
List<Student> studentList = stringList.stream()
.map(s -> s.split(","))
.map(arr -> new Student(arr[0], Integer.parseInt(arr[1])))
.collect(Collectors.toList());
```
首先使用stream()方法将List<String>转换成Stream<String>,然后使用map()方法将每个字符串转换成一个String[]数组,其中第一个元素是姓名,第二个元素是年龄。接着使用map()方法将每个String[]数组转换成一个Student对象,最后使用collect()方法将Stream<Student>转换成List<Student>。
3. 完整代码:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> stringList = Arrays.asList("Tom,18", "Jerry,20", "Alice,19");
List<Student> studentList = stringList.stream()
.map(s -> s.split(","))
.map(arr -> new Student(arr[0], Integer.parseInt(arr[1])))
.collect(Collectors.toList());
System.out.println(studentList);
}
}
class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
// getter和setter方法省略
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
```
输出结果:
```
[Student{name='Tom', age=18}, Student{name='Jerry', age=20}, Student{name='Alice', age=19}]
```