List<Integer> 通过逗号分割
时间: 2024-04-22 14:27:51 浏览: 10
如果你想要将 `List<Integer>` 中的元素通过逗号进行分割,你可以使用 Java 8 的 `stream()` 方法来实现。以下是一个示例代码:
```java
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
String joinedString = list.stream()
.map(Object::toString)
.collect(Collectors.joining(","));
System.out.println(joinedString);
```
在上面的示例中,我们首先创建了一个 `List<Integer>` 对象 `list`,并向其中添加了三个整数元素。然后,我们使用 `stream()` 方法将列表转换为流,接着使用 `map()` 方法将整数元素转换为字符串形式。最后,我们使用 `collect(Collectors.joining(","))` 将流中的元素通过逗号进行连接,并将结果赋值给 `joinedString` 变量。
运行以上代码,将会输出:
```
1,2,3
```
这样就实现了将 `List<Integer>` 中的元素通过逗号分割成一个字符串的功能。
相关问题
public Integer deleteByIds(List<Integer> ids) { } 用这个方法写个逻辑删除,用mybatis-plus,这是VO类 @Data @ApiModel(value = "飞行任务管理-后端列表页vo") public class BisTaskVO extends PageReqVO implements Serializable { @ApiModelProperty(value = "id") private Integer id; @ApiModelProperty(value = "逻辑删除 1是 0否") private Integer isDel; @TableField(exist = false) private List<Integer> ids; } 再用DataResult在controller写个调用方法,不要写mapper和sql
好的,可以参考下面的代码实现逻辑删除:
首先在实体类中添加isDel属性表示是否被删除,isDel为1表示已删除,为0表示未删除。同时,添加一个ids属性,用于接收需要删除的id列表。
```
@Data
@ApiModel(value = "飞行任务管理-后端列表页vo")
public class BisTaskVO extends PageReqVO implements Serializable {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "逻辑删除 1是 0否")
private Integer isDel;
@TableField(exist = false)
private List<Integer> ids;
}
```
然后在mapper中添加一个逻辑删除的方法,使用mybatis-plus的注解@Update来更新is_del字段为1。
```
public interface BisTaskMapper extends BaseMapper<BisTask> {
@Update("update bis_task set is_del = 1 where id in (${ids})")
Integer logicDeleteByIds(@Param("ids") String ids);
}
```
在service中调用mapper的逻辑删除方法,传入需要删除的id列表,将id列表转化为逗号分隔的字符串,然后调用mapper的逻辑删除方法。
```
@Service
public class BisTaskService extends ServiceImpl<BisTaskMapper, BisTask> {
@Autowired
private BisTaskMapper bisTaskMapper;
public DataResult<Object> logicDeleteByIds(BisTaskVO bisTaskVO) {
List<Integer> ids = bisTaskVO.getIds();
String idsStr = StringUtils.join(ids, ",");
Integer result = bisTaskMapper.logicDeleteByIds(idsStr);
return DataResult.success(result);
}
}
```
最后,在controller中调用service的逻辑删除方法即可。
```
@RestController
@RequestMapping("/bisTask")
public class BisTaskController {
@Autowired
private BisTaskService bisTaskService;
@PostMapping("/logicDeleteByIds")
public DataResult<Object> logicDeleteByIds(@RequestBody BisTaskVO bisTaskVO) {
return bisTaskService.logicDeleteByIds(bisTaskVO);
}
}
```
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}]
```