找出list中的不同元素、删除两个list中相同的对象
- package com.test;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Collections;
- import java.util.List;
- /**
- *
- * 找出两个list中不同的元素
- * @author leiwei 2011-12-14
- *
- */
- public class NoEqualsElement {
- public static void main(String[] args) {
- List<String> list1 = new ArrayList<String>();
- List<String> list2 = new ArrayList<String>();
- list1.add("1");
- list1.add("3");
- list1.add("8");
- list1.add("9");
- list2.add("2");
- list2.add("3");
- list2.add("7");
- for(String s2:list1) {
- boolean flag = false;
- for(String s1:list2) {
- if(s2.equals(s1)) {
- flag = true;
- break;
- }
- }
- if(!flag){
- System.out.println(s2);
- }
- }
- }
- }
- package com.test;
- import java.util.ArrayList;
- import java.util.HashSet;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Set;
- import com.model.Student;
- /**
- * 重写对象Student的equals方法
- * 只要age相等 对象就相等
- *
- * 删除两个集合中 相同的对象只保留一个
- * @author leiwei 2011-12-19
- *
- */
- public class ListOBJ {
- public static void main(String[] args) {
- Set<Student> setStudent = new HashSet<Student>();
- List<Student> list1 = new ArrayList<Student>();
- List<Student> list2 = new ArrayList<Student>();
- Student s1 = new Student();
- s1.setAge("10");
- list1.add(s1);
- Student s2 = new Student();
- s2.setAge("20");
- list1.add(s2);
- Student s3 = new Student();
- s3.setAge("20");
- list2.add(s3);
- Student s4 = new Student();
- s4.setAge("30");
- list2.add(s4);
- /**
- * 我们知道set集合,中的元素不会重复
- *
- * 将连个对象集合放进去,自然就会排出重复的
- *
- * 对象(前提Student 对象重写了equals方法)
- */
- setStudent.addAll(list1);
- setStudent.addAll(list2);
- //输出 测试看是否 排出成功
- System.out.println(setStudent.size());
- Iterator<Student> iterator = setStudent.iterator();
- while (iterator.hasNext()) {
- Student s = iterator.next();
- System.out.println(s.getAge());
- }
- }
- }
- package com.model;
- public class Student {
- private String age;
- public String getAge() {
- return age;
- }
- public void setAge(String age) {
- this.age = age;
- }
- //重写equals方法只要age相等,我们就认为对象两个相等
- @Override
- public boolean equals(Object obj) {
- if(obj instanceof Student){
- Student st=(Student) obj;
- return (age.equals(st.age));
- }else{
- return super.equals(obj);
- }
- }
- @Override
- public int hashCode() {
- return age.hashCode();
- }
- }
转自:http://blog.csdn.net/goodleiwei/article/details/7083199
找出list中的不同元素、删除两个list中相同的对象的更多相关文章
- c#封装DBHelper类 c# 图片加水印 (摘)C#生成随机数的三种方法 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象 c# 制作正方形图片 JavaScript 事件循环及异步原理(完全指北)
c#封装DBHelper类 public enum EffentNextType { /// <summary> /// 对其他语句无任何影响 /// </summary> ...
- java:在Conllection接口中实际上也规定了两个可以将集合变成对象数组的操作
在Conllection接口中实际上也规定了两个可以将集合变成对象数组的操作 //在Conllection接口中实际上也规定了两个可以将集合变成对象数组的操作 List<String> a ...
- majority element(数组中找出出现次数最多的元素)
Given an array of size n, find the majority element. The majority element is the element that appear ...
- 笔试算法题(24):找出出现次数超过一半的元素 & 二叉树最近公共父节点
出题:数组中有一个数字出现的次数超过了数组长度的一半,请找出这个数字: 分析: 解法1:首先对数组进行排序,时间复杂度为O(NlogN),由于有一个数字出现次数超过了数组的一半,所以如果二分数组的话, ...
- 算法练习之x的平方根,爬楼梯,删除排序链表中的重复元素, 合并两个有序数组
1.x的平方根 java (1)直接使用函数 class Solution { public int mySqrt(int x) { int rs = 0; rs = (int)Math.sqrt(x ...
- 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象
本文需要对C#里的LINQ.Lambda 表达式 .委托有一定了解. 在工作中,经常遇到需要对比两个集合的场景,如: 页面集合数据修改,需要保存到数据库 全量同步上游数据到本系统数据库 在这些场景中, ...
- 算法-找出与目标数字相同的digit组成的整数中比该数字大的数集中的最小数字
题目: 给出1个正整数,找到用与这个数字相同的digit组成的整数中比这个数字大的数集中的最小数字.比如:12352874 的结果是 12354278 分析: 这道题目的考虑目标是数组的查找与排序. ...
- day6、Linux下如何找出7天以前的文件删除
有些时候,由于系统产生的日志文件,使服务器的磁盘空间紧张,所以怎么删除7天以前的日志文件及让系统只保留7天以内的日志文件 方法一 使用命令:find + |xargs + ls 命令方法:find / ...
- EF Core中Fluent Api如何删除指定数据表中的行
这两天一直在研究在code first下如何删除数据表中的指定行,于是开始搜狗,后来百度,压根就找不到资料,后来一想可能我的搜索关键字有问题,而且ef core命令与ef的命令差不多,于是从这两个方面 ...
随机推荐
- docker 安装与常用命令与常用容器(containers)环境
注意区别 container 与 image 的关系,container 的建立需要 image 的承载,也即 container 依赖 image,停止并删除了 container 并不会删除 im ...
- 【二叉查找树】01不同的二叉查找树的个数【Unique Binary Search Trees】
当数组为1,2,3,4,...,n时,基于以下原则构建的BST树具有唯一性: 以i为根节点的树,其左子树由[1,i-1]构成,其右子树由[i+1, n]构成. 我们假定f(i)为以[1,i]能产生的U ...
- bzoj 3754: Tree之最小方差树 模拟退火+随机三分
题目大意: 求最小方差生成树.N<=100,M<=2000,Ci<=100 题解: 首先我们知道这么一个东西: 一些数和另一个数的差的平方之和的最小值在这个数是这些数的平均值时取得 ...
- centos下升级mysql5.5.47到5.7.14操作过程
一. 查看已安装Mysql基础信息通过mysql –V 查看下mysql版本可以通过命令find / -name mysql 得到下面信息 1.安装目录[root@jjxnhd-192-10 mysq ...
- log4net 使用
1. 代码中使用配置文件: log4net.Config.DOMConfigurator.Configure(new FileInfo("log4netConfig.xml")); ...
- Python-socket发送文件并解决粘包问题
服务器端要先根据客户端要下载的文件进行判断是否存在,还要根据文件大小来进行传送,最后还要比对文件的md5值来判断传送的文件是否正确,通过判断剩余字节来解决粘包问题 服务器端 # -*- coding: ...
- Project Online JS 添加Ribbon按钮
var Projects = Projects || {}; (function () { Projects.ribbonButtonClick = function (name) { var pro ...
- Java探索之旅(7)——对象的思考
1.知识要点 ❶不可变类:一旦创建,其内容不能改变的类称之为不可变类.满足:⑴所有数据域私有,⑵没有修改器,⑶没有访问器方法,其返回一个指向可变数据域的引用.(这样通过引用就能修改私有数据域).比如, ...
- unreal3窗口锁定鼠标开关
GameViewportClient中有个变量控制是否显示硬件鼠标: var transient bool bDisplayHardwareMouseCursor 也就是系统的光标,一般通过该类中的函 ...
- 17、SAM文件格式说明(转载迷宫中的将军)
1. SAM格式说明 SAM代表Sequence Alignment/Map格式,是一种制表符分隔的文本格式,包含一个可选的头部分(header section,有人称之为“注释部分”),和一个比对部 ...