java去除重复对象
来源:互联网 发布:福州靠谱网络 招聘 编辑:程序博客网 时间:2024/06/11 01:41
import java.util.*;
class Person {
private String name;
private int age;
Person(String name,int age){
this.name=name;
this.age=age;
}
public boolean equals(Object obj){
if(!(obj instanceof Person))
return false;
Person p=(Person)obj;
return this.name.equals(p.name) && this.age==p.age;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
}
public class ArrayListTest2{
public static void main(String args[])
{
ArrayList al=new ArrayList();
al.add(new Person("zhangsan1",22));
al.add(new Person("zhangsan2",33));
al.add(new Person("zhangsan3",44));
al.add(new Person("zhangsan5",88));
al.add(new Person("zhangsan4",55));
al.add(new Person("zhangsan1",22));
//al.add(new Person("zhangsan3",44));
al = singelElements(al);
Iterator it1=al.iterator();
while(it1.hasNext()){
Person p=(Person)it1.next();
sop(p.getName()+"..."+p.getAge());
}
/*Iterator it=al.iterator();
while(it.hasNext()){
Person p= (Person)it.next();//将其强制转化为person类型 可以实现后边的输入否则不能调用getAge()和getName()方法
sop(p.getName()+"..."+p.getAge());
}*/
}
public static ArrayList singelElements(ArrayList al){
ArrayList newal=new ArrayList();
Iterator it=al.iterator();
while(it.hasNext()){
Object obj=it.next();
if(!newal.contains(obj))
newal.add(obj);
}
return newal;
}
public static void sop(Object obj){
System.out.println(obj);
}
class Person {
private String name;
private int age;
Person(String name,int age){
this.name=name;
this.age=age;
}
public boolean equals(Object obj){
if(!(obj instanceof Person))
return false;
Person p=(Person)obj;
return this.name.equals(p.name) && this.age==p.age;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
}
public class ArrayListTest2{
public static void main(String args[])
{
ArrayList al=new ArrayList();
al.add(new Person("zhangsan1",22));
al.add(new Person("zhangsan2",33));
al.add(new Person("zhangsan3",44));
al.add(new Person("zhangsan5",88));
al.add(new Person("zhangsan4",55));
al.add(new Person("zhangsan1",22));
//al.add(new Person("zhangsan3",44));
al = singelElements(al);
Iterator it1=al.iterator();
while(it1.hasNext()){
Person p=(Person)it1.next();
sop(p.getName()+"..."+p.getAge());
}
/*Iterator it=al.iterator();
while(it.hasNext()){
Person p= (Person)it.next();//将其强制转化为person类型 可以实现后边的输入否则不能调用getAge()和getName()方法
sop(p.getName()+"..."+p.getAge());
}*/
}
public static ArrayList singelElements(ArrayList al){
ArrayList newal=new ArrayList();
Iterator it=al.iterator();
while(it.hasNext()){
Object obj=it.next();
if(!newal.contains(obj))
newal.add(obj);
}
return newal;
}
public static void sop(Object obj){
System.out.println(obj);
}
}
解题思路:创建一个临时容器ArrayList来存储不重复的对象。通过两次使用迭代器将对象取出从而输入不重复的对象。
这里需要注意到在Person类中需要定义一个equals方法来比较是否有相同的元素。其中instance的用法是判断对象是否属于该类如果属于则返回true否则返回false.
注意java编程中ArrayLis等容器中调用contains以及remove方法时候都会调用equals方法。这是一个很多人都不注意的知识点。
0 0
- Java 去除重复对象
- java去除重复对象
- java-list去除重复的对象
- Java 中 List 对象去除重复
- ArrayList去除重复对象
- set去除重复对象
- java list去除对象类的重复值
- java练习3,去除容器中自定义的重复对象
- java去除重复字符串
- java 字符串去除重复
- java list去除重复
- java去除重复元素
- 去除集合中的重复对象
- 去除Array中重复对象
- list集合去除重复对象
- List<T>去除重复对象
- list集合去除重复对象
- List集合去除重复对象
- Bestcoder Pro.ID 2013 蟠桃记
- 线段树+树状数组模板
- 易语言学习第六课
- C++ Standard Library
- SpringMVC学习记录(八)--开发中的小问题
- java去除重复对象
- OpenStack修改IP/MAC对VM通信影响
- strchr strrchr strcmp的实现
- 2-2 Verilog 7 段译码器(静态显示)
- sublime运行python3
- webView的页面下载实现
- HDU 2054 A==B?
- HDU2602 DP + 裸 + 01背包
- C经典 打印垂直三角形