1. package com.test;
  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.Collections;
  5. import java.util.List;
  6. /**
  7. *
  8. * 找出两个list中不同的元素
  9. * @author leiwei 2011-12-14
  10. *
  11. */
  12. public class NoEqualsElement {
  13. public static void main(String[] args) {
  14. List<String> list1 = new ArrayList<String>();
  15. List<String> list2 = new ArrayList<String>();
  16. list1.add("1");
  17. list1.add("3");
  18. list1.add("8");
  19. list1.add("9");
  20. list2.add("2");
  21. list2.add("3");
  22. list2.add("7");
  23. for(String s2:list1) {
  24. boolean flag = false;
  25. for(String s1:list2) {
  26. if(s2.equals(s1)) {
  27. flag = true;
  28. break;
  29. }
  30. }
  31. if(!flag){
  32. System.out.println(s2);
  33. }
  34. }
  35. }
  36. }
  1. package com.test;
  2. import java.util.ArrayList;
  3. import java.util.HashSet;
  4. import java.util.Iterator;
  5. import java.util.List;
  6. import java.util.Set;
  7. import com.model.Student;
  8. /**
  9. * 重写对象Student的equals方法
  10. * 只要age相等 对象就相等
  11. *
  12. * 删除两个集合中 相同的对象只保留一个
  13. * @author leiwei 2011-12-19
  14. *
  15. */
  16. public class ListOBJ {
  17. public static void main(String[] args) {
  18. Set<Student> setStudent = new HashSet<Student>();
  19. List<Student> list1 = new ArrayList<Student>();
  20. List<Student> list2 = new ArrayList<Student>();
  21. Student s1 = new Student();
  22. s1.setAge("10");
  23. list1.add(s1);
  24. Student s2 = new Student();
  25. s2.setAge("20");
  26. list1.add(s2);
  27. Student s3 = new Student();
  28. s3.setAge("20");
  29. list2.add(s3);
  30. Student s4 = new Student();
  31. s4.setAge("30");
  32. list2.add(s4);
  33. /**
  34. * 我们知道set集合,中的元素不会重复
  35. *
  36. * 将连个对象集合放进去,自然就会排出重复的
  37. *
  38. * 对象(前提Student 对象重写了equals方法)
  39. */
  40. setStudent.addAll(list1);
  41. setStudent.addAll(list2);
  42. //输出 测试看是否 排出成功
  43. System.out.println(setStudent.size());
  44. Iterator<Student> iterator = setStudent.iterator();
  45. while (iterator.hasNext()) {
  46. Student s = iterator.next();
  47. System.out.println(s.getAge());
  48. }
  49. }
  50. }
  1. package com.model;
  2. public class Student {
  3. private String age;
  4. public String getAge() {
  5. return age;
  6. }
  7. public void setAge(String age) {
  8. this.age = age;
  9. }
  10. //重写equals方法只要age相等,我们就认为对象两个相等
  11. @Override
  12. public boolean equals(Object obj) {
  13. if(obj instanceof Student){
  14. Student st=(Student) obj;
  15. return (age.equals(st.age));
  16. }else{
  17. return super.equals(obj);
  18. }
  19. }
  20. @Override
  21. public int hashCode() {
  22. return age.hashCode();
  23. }
  24. }

转自:http://blog.csdn.net/goodleiwei/article/details/7083199

找出list中的不同元素、删除两个list中相同的对象的更多相关文章

  1. c#封装DBHelper类 c# 图片加水印 (摘)C#生成随机数的三种方法 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象 c# 制作正方形图片 JavaScript 事件循环及异步原理(完全指北)

    c#封装DBHelper类   public enum EffentNextType { /// <summary> /// 对其他语句无任何影响 /// </summary> ...

  2. java:在Conllection接口中实际上也规定了两个可以将集合变成对象数组的操作

    在Conllection接口中实际上也规定了两个可以将集合变成对象数组的操作 //在Conllection接口中实际上也规定了两个可以将集合变成对象数组的操作 List<String> a ...

  3. majority element(数组中找出出现次数最多的元素)

    Given an array of size n, find the majority element. The majority element is the element that appear ...

  4. 笔试算法题(24):找出出现次数超过一半的元素 & 二叉树最近公共父节点

    出题:数组中有一个数字出现的次数超过了数组长度的一半,请找出这个数字: 分析: 解法1:首先对数组进行排序,时间复杂度为O(NlogN),由于有一个数字出现次数超过了数组的一半,所以如果二分数组的话, ...

  5. 算法练习之x的平方根,爬楼梯,删除排序链表中的重复元素, 合并两个有序数组

    1.x的平方根 java (1)直接使用函数 class Solution { public int mySqrt(int x) { int rs = 0; rs = (int)Math.sqrt(x ...

  6. 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象

    本文需要对C#里的LINQ.Lambda 表达式 .委托有一定了解. 在工作中,经常遇到需要对比两个集合的场景,如: 页面集合数据修改,需要保存到数据库 全量同步上游数据到本系统数据库 在这些场景中, ...

  7. 算法-找出与目标数字相同的digit组成的整数中比该数字大的数集中的最小数字

    题目: 给出1个正整数,找到用与这个数字相同的digit组成的整数中比这个数字大的数集中的最小数字.比如:12352874 的结果是 12354278 分析: 这道题目的考虑目标是数组的查找与排序. ...

  8. day6、Linux下如何找出7天以前的文件删除

    有些时候,由于系统产生的日志文件,使服务器的磁盘空间紧张,所以怎么删除7天以前的日志文件及让系统只保留7天以内的日志文件 方法一 使用命令:find + |xargs + ls 命令方法:find / ...

  9. EF Core中Fluent Api如何删除指定数据表中的行

    这两天一直在研究在code first下如何删除数据表中的指定行,于是开始搜狗,后来百度,压根就找不到资料,后来一想可能我的搜索关键字有问题,而且ef core命令与ef的命令差不多,于是从这两个方面 ...

随机推荐

  1. uoj279温暖会指引我们前行

    暖气来啦~ 动态树维护最大生成树裸题 #include<iostream> #include<cstdio> #include<cstdlib> #include& ...

  2. XMPP群聊消息重复,自己收到自己发出的消息,群警告消息如何屏蔽

    在XMPP的"groupchat"中,创建群的时候会收到群发的"This room is locked from entry until configuration is ...

  3. 洛谷【P1303】A*B Problem

    题目传送门:https://www.luogu.org/problemnew/show/P1303 高精度乘法板子题,灵性地回忆一下小学时期列竖式的草稿纸即可. 时间复杂度:\(O(len^2)\) ...

  4. Wireshark抓包常见问题解析

    1.   tcp out-of-order(tcp有问题) 解答: 1).    应该有很多原因.但是多半是网络拥塞,导致顺序包抵达时间不同,延时太长,或者包丢失,需要重新组合数据单元 因为他们可能是 ...

  5. 能否自己也写一个类叫做java.lang.String?

    这次的随笔很逗吧~没错,我们的确也可以自己在创建一个包java.lang,然后在 相应的包下面创建一个对应的类String,但是在每次jre运行的时候,我们都回去加载原来默认的java.lang.St ...

  6. js数组与 json 的区别

    一,数组 1. 定义一维数组:var s1=new Array(); s1=[1,2,3,4]或者s1[0]=1,s1[1]=2,s1[3]=3,s1[4]=4; alert(s1[0]); 结果为1 ...

  7. Delegate Action<T in> Func<T in,out Tresult> Predicate<T>

    action<T> 和  func<T> 都是delegate的简写形式,其中T为可以接受的参数类型 action<T> 指那些只有输入参数,没有返回值 Deleg ...

  8. Packet for query is too large

    数据库:mysql5.6 framework: play framework 1.2.4 近日处理批量数据的insert,update,涉及的保存更新sql大概有18w.我的操作如下: 1)每次取10 ...

  9. C++经典题目:约瑟夫环问题

    问题描述: 有n个人围成一圈,顺序排号.从第一个人开始报数(1~3报数),凡报到3的人退出圈子,问最后留下的人原来排在第几号. 分析: 首先由用户输入人数n,然后对这n个人进行编号[因为如果不编号的话 ...

  10. 从PCD文件中读取点云数据

    博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=84 在本小节我们学习如何从PCD文件中读取点云数据. 代码 章例1文件夹中, ...