java 项目 , List<实体>,需要获取list中的重复数据

如List[{1,2,3,4},{1,3,5,4},{1,3,3,4}]值,list中的{1,2,3,4}是一个对象,根据对象中最后的两值循环与其他对象的最后两个值判断,... 如 List[{1,2,3,4},{1,3,5,4},{1,3,3,4}] 值,list中的 {1,2,3,4}是一个对象, 根据对象中最后的两值循环与其他对象的最后两个值判断,不相同则删除对象(得到相同的值)。 展开
 我来答
小傻

推荐于2016-02-25 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31134
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部
java项目中获取list重复数据可以使用list的reduplicateIndex方法,实例如下:
public static void main(String[] args) throws Exception {
  List<String> list = new ArrayList<String>();
  list.add("123");
  list.add("456");
  list.add("555");
  list.add("123");
  list.add("444");
  list.add("123");

  // 输出原 List 的内容
  for (int i = 0; i < list.size(); i++) {
    System.out.printf("%2d --> %s%n", i, list.get(i));
  }
  System.out.println("=============");

  // 输出查找重复元素的内容
  int[] indexArray = reduplicateIndex(list, "123");
  for (int index : indexArray) {
    System.out.printf("%2d --> %s%n", index, list.get(index));
  }
}

public static <T> int[] reduplicateIndex(List<T> list, T str) throws Exception{
  List<T> tmp = new ArrayList<T>(list);
  int[] index = new int[Collections.frequency(list, str)];
  int start = tmp.indexOf(str);
  int end = tmp.lastIndexOf(str);
  int i = 0;
  if(start < 0) {
    throw new Exception("数组中不存在 " + str + " 元素!");
  }
  index[i] = start;
  while (start != end) {
    index[++i] = end;
    tmp = tmp.subList(0, end);
    end = tmp.lastIndexOf(str);
  }
  Arrays.sort(index);
  return index;
}
明月清风618
推荐于2018-03-04 · TA获得超过737个赞
知道小有建树答主
回答量:395
采纳率:100%
帮助的人:127万
展开全部
那你这只能用循环一个一个的去比较了。类似这样的list.get(i).equals(list.get(i+1))去比较了。i+1不能大于数组的长度。不然越界了唉。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
好男人是小布
2012-10-12 · 超过30用户采纳过TA的回答
知道答主
回答量:93
采纳率:0%
帮助的人:71.7万
展开全部
List a=new ArrayList();采用这种方法生成一个list名称为a,之后可以采用a.size()获取元素的个数,然后采用a.get(n) n为第n个元素,这样可以取出list中的逐个元素,取出元素之后,比较后两个元素,则可以采用写一个额外的函数或者类的方法进行解决
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b48b2c268
2012-10-12
知道答主
回答量:15
采纳率:0%
帮助的人:2万
展开全部
创建一个对象,你已将创建了 ,然后重写他的equals()方法,具体内容是比较该对象的每个值,,然后迭代这个list,迭代出来用对象的eual方法比较2哥对象是否相等,不相等的remove()就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
llei32wang
2012-10-12 · TA获得超过2736个赞
知道大有可为答主
回答量:1478
采纳率:60%
帮助的人:1405万
展开全部
配合hashmap历遍一次list就好了。如果hashmap中有该值,就把他加入一个新的list里,如果没有就把它加入hashmap里。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式