java标识方法新增修改删除_根据两个集合唯一标识,筛选新增、删除、修改数据,并保存...

importjava.util.ArrayList;importjava.util.List;public classDataFilter {/*** 功能描述: 根据两个集合唯一标识,筛选新增、删除、修改数据,并保存

*

* @Param: [userBoList, userList]

* @Return: void

* @Author: XinHai.Ma

* @Date: 2020/12/5 22:57*/

public static void filter(List userBoList, ListuserList) {

List userBoSameList = new ArrayList<>(); //UserBo与User共有的数据

List userSameList = new ArrayList<>(); //UserBo与User共有的数据

for(UserBo userBo : userBoList) {for(User user : userList) {if(userBo.getUsername().equals(user.getUsername())) {

user.setPassword(userBo.getPassword());

userBoSameList.add(userBo);

userSameList.add(user);

}

}

}

userBoList.removeAll(userBoSameList);//要增加的数据

userList.removeAll(userSameList); //要删除的数据//保存要新增的数据

if (userBoList.size() > 0) {

List users = new ArrayList<>();for(UserBo userBo : userBoList) {

User user= newUser();

user.setUsername(userBo.getUsername());

user.setPassword(userBo.getPassword());

users.add(user);

}//this.dao.saveAll(users);

System.out.println("新增数据: " +users);

}//逻辑删除数据

if (userList.size() > 0) {for(User user : userList) {

user.setIsDelete(1); //删除状态

}//this.dao.saveAll(userList);

System.out.println("删除数据: " +userList);

}//要保存的修改数据

if (userSameList.size() > 0) {//this.dao.saveAll(userSameList);

System.out.println("修改数据: " +userSameList);

}

}public static voidmain(String[] args) {

List userBoList = new ArrayList<>();

List userList = new ArrayList<>();//初始化数据

for(long i=0; i<10; i++) {if(i > 5) {

User user= new User(i, "username"+(i+1), "password"+(i+1));

userList.add(user);

}

UserBo userBo= new UserBo(i, "username"+i, "password"+i);

userBoList.add(userBo);

}

System.out.println("userList数据: " +userList);

System.out.println("userBoList数据: " +userBoList);//根据userBo集合同步userList数据

filter(userBoList, userList);

}

}/*** 功能描述: 用户

*

* @Param:

* @Return:

* @Author: XinHai.Ma

* @Date: 2020/12/5 22:54*/

classUser {privateLong id;privateString username;privateString password;privateInteger isDelete;publicInteger getIsDelete() {returnisDelete;

}public voidsetIsDelete(Integer isDelete) {this.isDelete =isDelete;

}publicLong getId() {returnid;

}public voidsetId(Long id) {this.id =id;

}publicString getUsername() {returnusername;

}public voidsetUsername(String username) {this.username =username;

}publicString getPassword() {returnpassword;

}public voidsetPassword(String password) {this.password =password;

}publicUser() {

}publicUser(Long id, String username, String password) {this.id =id;this.username =username;this.password =password;

}

@OverridepublicString toString() {return "User{" +

"id=" + id +

", username='" + username + '\'' +

", password='" + password + '\'' +

", isDelete=" + isDelete +

'}';

}

}/*** 功能描述: 用户Bo

*

* @Param:

* @Return:

* @Author: XinHai.Ma

* @Date: 2020/12/5 22:54*/

classUserBo {privateLong id;privateString username;privateString password;publicLong getId() {returnid;

}public voidsetId(Long id) {this.id =id;

}publicString getUsername() {returnusername;

}public voidsetUsername(String username) {this.username =username;

}publicString getPassword() {returnpassword;

}public voidsetPassword(String password) {this.password =password;

}publicUserBo(Long id, String username, String password) {this.id =id;this.username =username;this.password =password;

}publicUserBo() {

}

@OverridepublicString toString() {return "UserBo{" +

"id=" + id +

", username='" + username + '\'' +

", password='" + password + '\'' +

'}';

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的雨量监测站的Java代码,包含了新增删除修改、查询和退出功能: ``` import java.util.ArrayList; import java.util.Scanner; public class RainfallMonitoringStation { private static ArrayList<Rainfall> rainfallList = new ArrayList<>(); private static Scanner scanner = new Scanner(System.in); public static void main(String[] args) { while (true) { System.out.println("请选择操作:"); System.out.println("1. 新增"); System.out.println("2. 删除"); System.out.println("3. 修改"); System.out.println("4. 查询"); System.out.println("5. 退出"); int choice = scanner.nextInt(); scanner.nextLine(); switch (choice) { case 1: addRainfall(); break; case 2: deleteRainfall(); break; case 3: updateRainfall(); break; case 4: queryRainfall(); break; case 5: System.exit(0); break; default: System.out.println("无效的操作,请重新选择!"); } } } private static void addRainfall() { System.out.println("请输入雨量监测站名称:"); String name = scanner.nextLine(); System.out.println("请输入雨量值(mm):"); double value = scanner.nextDouble(); scanner.nextLine(); Rainfall rainfall = new Rainfall(name, value); rainfallList.add(rainfall); System.out.println("雨量监测站已添加!"); } private static void deleteRainfall() { System.out.println("请输入要删除的雨量监测站名称:"); String name = scanner.nextLine(); for (Rainfall rainfall : rainfallList) { if (rainfall.getName().equals(name)) { rainfallList.remove(rainfall); System.out.println("雨量监测站已删除!"); return; } } System.out.println("未找到要删除的雨量监测站!"); } private static void updateRainfall() { System.out.println("请输入要修改的雨量监测站名称:"); String name = scanner.nextLine(); for (Rainfall rainfall : rainfallList) { if (rainfall.getName().equals(name)) { System.out.println("请输入新的雨量值(mm):"); double value = scanner.nextDouble(); scanner.nextLine(); rainfall.setValue(value); System.out.println("雨量值已更新!"); return; } } System.out.println("未找到要修改的雨量监测站!"); } private static void queryRainfall() { System.out.println("请输入要查询的雨量监测站名称,若查询所有,请输入 all:"); String name = scanner.nextLine(); if (name.equals("all")) { System.out.println("所有雨量监测站:"); for (Rainfall rainfall : rainfallList) { System.out.println(rainfall.getName() + ":" + rainfall.getValue() + "mm"); } } else { for (Rainfall rainfall : rainfallList) { if (rainfall.getName().equals(name)) { System.out.println(rainfall.getName() + ":" + rainfall.getValue() + "mm"); return; } } System.out.println("未找到要查询的雨量监测站!"); } } } class Rainfall { private String name; private double value; public Rainfall(String name, double value) { this.name = name; this.value = value; } public String getName() { return name; } public double getValue() { return value; } public void setValue(double value) { this.value = value; } } ``` 在这个程序中,我们使用了一个 `ArrayList<Rainfall>` 来保存所有的雨量监测站数据,每个雨量监测站由一个 `Rainfall` 对象来表示。程序通过不断循环接收用户的输入来实现各项功能。具体功能的实现细节如下: - 新增功能:首先要求用户输入雨量监测站名称和雨量值,然后根据这些信息创建一个 `Rainfall` 对象,并将其添加到 `rainfallList` 中。 - 删除功能:要求用户输入要删除的雨量监测站名称,然后遍历 `rainfallList`,查找是否有一个名称与之匹配的 `Rainfall` 对象。如果找到了这样的对象,就将其从 `rainfallList` 中删除。 - 修改功能:要求用户输入要修改的雨量监测站名称,然后遍历 `rainfallList`,查找是否有一个名称与之匹配的 `Rainfall` 对象。如果找到了这样的对象,就要求用户输入新的雨量值,并将该 `Rainfall` 对象的雨量值更新为用户输入的值。 - 查询功能:要求用户输入要查询的雨量监测站名称,然后遍历 `rainfallList`,查找是否有一个名称与之匹配的 `Rainfall` 对象。如果找到了这样的对象,就输出该对象的名称和雨量值。如果用户输入了特殊的名称 `all`,则遍历 `rainfallList`,输出所有的雨量监测站的名称和雨量值。 - 退出功能:调用 `System.exit(0)` 来终止程序的运行。 注意,在本示例中,我们并没有对用户的输入进行严格的错误处理,因此如果用户输入了不合法的内容,程序可能会出现异常。在实际应用中,我们应该对用户的输入进行更为严格的验证和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值