//去重 公开课用户{ 私人int id; 私人字符串名称; 私人int年龄; 公共用户(){} 公共用户(int id字符串名称,int年龄){ 超级(); 这一点。id=id; this.name=名称; 这一点。年龄=年龄; } 公共int getId () { 返回id; } 公共空间setId (int id) { 这一点。id=id; } 公共字符串getName () { 返回名称; } 公共空间setName(字符串名称){ this.name=名称; } 公共int getAge () { 返回年龄; } 公共空间setAge (int年龄){ 这一点。年龄=年龄; } @Override 公共字符串toString () { 返回“用户id=" +身份证+ " name=" +名字+”,年龄=" +年龄+ "]”; } } 公开课列表{/* * *有一个List单子放了五个对象:user1、user2, user3, user4 user5 用户有三个属性Id、姓名、年龄 其中user2的记录大概是这样:“100”,“abc”, 20; user3的记录大概是这样:“100”,“def”, 20; 请问怎么才能只保留user2和user3中的一个对象,并将其中合的名字并到新对象中, 新对象如“100”,“六边形abcdef”, 20 这只是举个例子,实际中有可能user4和user5与此类似,如果有id相同的两个对象,则对其进行 合,并只保留一个对象,求一个通用的方法,能筛选出对象集合中某些相同ID的两个对象,将其合并 仍保留在原列表中 * @param arg游戏 *///列表有序可重复,设置无序不可重复,mapkey不允许重复,键相同的后面的价值会把前面的覆盖掉//列表存放的数据,默认是按照放入时的顺序存放的,比如依次放入A, B, C,则取得时候,则也是A, B, C的顺序 公共静态void main (String [] args) { List ,列表=new ArrayList<的在(); 列表。添加新用户(1”“20)); 列表。添加新用户(1”“20)); 列表。添加新用户(2”“20)); 列表。添加新用户(3“b”20)); 列表。添加新用户(1“c”20)); 列表。添加新用户(4“d”20)); 列表。添加新用户(2“e”20)); 列表。添加新用户(1”“20));/*(用户用户:列表){ System.out.println (user.toString ()); } System.out.println (); */=mySort列表(列表); (用户用户:列表){ System.out.println (user.toString ()); } } 公共静态List mySort (List 列表){ User> HashMap<整数;,tempMap=new HashMap<的在(); (用户用户:列表){ int关键=user.getId ();//containsKey(对象键)该方法判断映射集合对象中是否包含指定的键名。如果映射集合中包含指定的键名,则返回真,否则返回错误的//containsValue(对象值)价值:要查询的映射集合的指定键值对象。如果映射集合中包含指定的键值,则返回真,否则返回错误的 如果(tempMap.containsKey(关键)){ 用户颞部=新用户(键, tempMap.get(关键). getname () + user.getName (), tempMap.get(关键).getAge ());//user.getAge ();//HashMap是不允许关键重复的,所以如果有关键重复的话,那么前面的价值会被后面价值的覆盖 tempMap。把(关键,颞部); 其他}{ tempMap。(关键用户); } } List ,tempList=new ArrayList<的在(); for (int关键:tempMap.keySet ()) { tempList.add (tempMap.get(键)); } 返回tempList; } }//排序=============================================公开课学生{ 私人int年龄; 私人字符串名称; 公共int getAge () { 返回年龄; } 公共空间setAge (int年龄){ 这一点。年龄=年龄; } 公共字符串getName () { 返回名称; } 公共空间setName(字符串名称){ this.name=名称; } @Override 公共字符串toString () { 返回“学生(年龄=" +年龄+”,name=" +名字+ "]”; } } 公开课ListSort { 公共静态void main (String [] args) { List 列表=new ArrayList ();//创建3个学生对象,年龄分别是20日,19日,21日,并将他们依次放入列表中 学生s1=new (); s1.setAge (20); s1.setName(“葛大”); 学生s2=new (); s2.setAge (19); s2.setName(“张杰”); 学生s3=new (); s3.setAge (21); s3.setName(“宝爷”); list.add (s1); list.add (s2); list.add (s3); System.out.println(“排序前:“+列表); 集合。排序(列表,新Comparator 根据列表中对象的属性去重和排序小结(必看篇)