关于数据类型为String但内容为[1User [id=1, name=我是第1个], 2User [id=2, name=我是第2个]...]格式的数据转为实体(User)

	为了做演示我声明了一个为List<String>类型的集合
	List<String> m = new ArrayList<String>();
	for(int i=1;i<=10;i++){//这循环添加数据
		User user = new User();
		user.setId(i);
		user.setName("我是第"+i+"个");
		m.add(i+""+ user+"");		
	}
	String value=String.join("-", m);//在添加数据时添加一个"-"符号以便后面切割字符
	List<Object> list = new ArrayList<Object>();//将数组声明为Object类型的以便好转化
	String[] split = rsmap.split("-");//根据"-"切割字符串
	for(int i=0;i<split.length;i++){//循环切割后的字符,保存为每一个单的String类型的字符串
		String u = split[i];
		//System.out.println(u);
		list.add(u);//添加到集合中
	}
	Object ob = (Object) list;
	List<User> listUser = (List<User>)ob ;//强制转集合
	System.out.println(listUser.toString());
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果`list1`和`list2`都是`List<User>`类型的列表,你可以通过重写`User`类的`equals()`方法来确定两个用户是否相同,然后使用Stream API进行筛选。以下是示例代码: ```java import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; class User { private int id; private String name; // 构造函数、getter和setter方法 // 重写equals()方法 @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (!(obj instanceof User)) { return false; } User other = (User) obj; return this.id == other.id && this.name.equals(other.name); } } public class Main { public static void main(String[] args) { // 创建两个列表 List<User> list1 = new ArrayList<>(); list1.add(new User(1, "Alice")); list1.add(new User(2, "Bob")); list1.add(new User(3, "Charlie")); List<User> list2 = new ArrayList<>(); list2.add(new User(2, "Bob")); list2.add(new User(3, "Charlie")); list2.add(new User(4, "David")); // 使用Stream API筛选不同的元素 List<User> differentElements = list1.stream() .filter(e -> !list2.contains(e)) .collect(Collectors.toList()); // 打印结果 System.out.println("不同的元素:" + differentElements); } } ``` 上述代码中,我们重写了`User`类的`equals()`方法,根据`id`和`name`来判断两个用户是否相同。然后使用Stream API的`filter`方法来筛选出在`list1`中存在但是在`list2`中不存在的用户,并将结果收集到一个新的列表中。 请注意,为了正确地比较`User`对象,你需要确保`User`类正确实现了`equals()`和`hashCode()`方法。这样才能保证在使用`contains()`方法时得到正确的结果。 输出结果将是不同的用户列表,根据你的具体数据而定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值