判断List<T> 对象中T1、T2、T3是否有重复的对象属性

List proList = new ArrayList<>();

    MarketProduct pro1 = new MarketProduct();
    pro1.setBrandCode("b1");
    pro1.setSeriesCode("s1");
    pro1.setModelCode("m1");
    pro1.setGrainCode("g1");
    pro1.setPrice(45D);
    proList.add(pro1);

    MarketProduct pro2 = new MarketProduct();
    pro2.setBrandCode("b1");
    pro2.setSeriesCode("s1");
    pro2.setModelCode("m1");
    pro2.setGrainCode("g1");
    pro2.setPrice(33D);
    proList.add(pro2);

            怎么判断proList中pro1与pro2的前面四个属性相同?

使用使用集合中的sort()方法 传入自己实现Commparator接口的类的对象,实现自定义排序

使用for循环先得到pro1前面四个属性,再嵌套一个for循环得到pro2前4个属性,做if判断。

List list= new List();
list.Add(new Data{ lat=37,lon = 105,value = 80 });
list.Add(new Data{ lat= 37,lon = 105,value = 90 });
list.Add(new Data{ lat= 38,lon = 107,value = 70 });
list.Add(new Data{ lat= 37,lon = 105,value = 80 });
list.Add(new Data{ lat= 34,lon = 106,value = 85 });
list.Add(new Data{ lat= 34,lon = 106,value = 70 });
list.Add(new Data{ lat= 38,lon = 109,value = 80 });
. . . . . .

如果lat和lon都相同,则取value大的;新的List中,lat、lon相同的只能有一组数

List<MarketProduct> repeatList = new ArrayList<MarketProduct>();//用于存放重复的元素的list
    Map<String, Integer> map = new HashMap<>(); 
    for(MarketProduct s : proList){
        //map.containsKey()   检测key是否重复
        if(map.containsKey(s.getBrandCode())){
            repeatList.add(s);//获取重复的值

            Integer num = map.get(s.getBrandCode());
            map.put(s.getBrandCode(), num+1);
        }else{
            map.put(s.getBrandCode(), 1);
        }
    }

    for(MarketProduct s : repeatList){
      System.out.println("相同的元素:" + s.getBrandCode());
    }
    for(Map.Entry<String, Integer> entry : map.entrySet()){
      System.out.println(entry.getKey() + "出现了:" + entry.getValue() + "次");
    }
    如果你只是比较前四个属性,那直接for循环取前四个属性,直接使用equals来一一比较是否相等就行了;

    如果你是说前四个属性相等,那么这两个对象相等的话,需要重新定义一个比较的方法,然后方法里对这四个属性进行比较,

如果相等,那么就认为这个对象相等,返回true,具体代码自己可以尝试实现以下,不知道是否回答了你的问题

你proList里存储的是 MarketProduct 实例,无非就是想比较两个 MarketProduct 实例的那四个属性是否相同,prolist[i].getfield.equals(prolist[i].getfield)就能对其 MarketProduct 实例的属性进行比较是否相等

一般比较两个对象的某一属性是否相等用equals() ,此时应该重写equals(),