集合去重(String去重,对象去重常用方法)

String 去重
/**
* notes:使用HashSet实现List去重
* @param list
* @return
*/
public static List repeatListWayTwo(List list){
  //初始化HashSet对象,并把list对象元素赋值给HashSet对象
  HashSet set = new HashSet(list);
  //把List集合所有元素清空
  list.clear();
  //把HashSet对象添加至List集合
  list.addAll(set);
  return list;
}

对象去重

对对象中的某一字段去重,重复对象保留第一个。

public class YYInfo {
	private String yydm;// 代码
	private String yymc;// 名称

	public String getYydm() {
		return yydm;
	}

	public void setYydm(String yydm) {
		this.yydm = yydm;
	}

	public String getYymc() {
		return yymc;
	}

	public void setYymc(String yymc) {
		this.yymc = yymc;
	}
}

	/**
	 * 去重 list
	* @Description: TODO(这里用一句话描述这个方法的作用)
	* @author yaorui
	* @param list
	* @return
	 */
    private static ArrayList removeDuplicate(List yyinfo) {
        Set set = new TreeSet(new Comparator() {
            @Override
            public int compare(YYInfo o1,YYInfo o2) {
                //字符串,则按照asicc码升序排列
                return o1.getYydm().compareTo(o2.getYydm());
            }
        });
        set.addAll(yyinfo);
        return new ArrayList(set);
    }

Map 对对象去重,并对其中一项结果累加

Map map = new HashMap();
for(YYInfo yyinfo : YYInfos){
	if(map.get(yyinfo.getYydm())==null){
		map.put(yyinfo.getYydm(),yyinfo.getYymc());
	}else{
		//重复值累加 yymc 字段的值(具体情况具体分析)
		//这里用逗号区分,后续处理可用String.spilt(",")处理
		String yymcs = map.get(yyinfo.getYydm())+","+yyinfo.getYymc();
		map.put(yyinfo.getYydm(),yymcs);
	}
}

你可能感兴趣的:(常见问题汇总)