根据列表中对象的属性去重和排序小结(必看篇)

  

     //去重   公开课用户{   私人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 ());   }      }   公共静态ListmySort (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

根据列表中对象的属性去重和排序小结(必看篇)