[bxd学习java基本点]9.ArrayList存对象例子,其除重复及删除,要使用地址,而不是eqauls
2013-04-13 12:21
603 查看
day14-11
List集合看元素是否相同,依据是元素的方法
比较的是对象,
ArrayList
存对象,就是把一人,包含姓名,年龄
每调一次contains,contains就要调equals,我们把原杀了
要知道,存的是地址。
package test.bixiangdong;
import java.util.ArrayList;
import java.util.Iterator;
class Person{
private String name;
private int age;
Person(String name,int age){
this.name=name;
this.age=age;
}
public String getName(){
return name;
}
public int getage(){
return age;
}
public boolean equals(Object obj){
if(!(obj instanceof Person)){
return false;
}
Person p=(Person) obj;
System.out.println(p.name+"---"+this.name);
return (this.name.equals(p.name)) && (this.age==p.age);
}
}
public class Test {
public static ArrayList singleElement(ArrayList al){
ArrayList alNew=new ArrayList();
Iterator it=al.iterator();
while(it.hasNext()){
Object obj=it.next();
if(!alNew.contains(obj)){
//alNew.add(it.next());//NoSuchElementException ——————————next()一定要注意,因为你取了二次,最后一次必为空
alNew.add(obj);
}
}
return alNew;
}
public static void sop(Object obj){
System.out.println(obj);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t=new Test();
ArrayList al=new ArrayList();
al.add(new Person("java1",30));
al.add(new Person("java2",30));
al.add(new Person("java1",40));
al.add(new Person("java3",30));
al.add(new Person("java3",30));
al=t.singleElement(al);
Iterator it2=al.iterator();
while(it2.hasNext()){
Person p2=(Person)it2.next();
sop("no repeat:"+p2.getName()+"---"+p2.getage());
}
//kill a element
sop("remove java3"+al.remove(new Person("java1",30)));
}
}
List集合看元素是否相同,依据是元素的方法
比较的是对象,
ArrayList
存对象,就是把一人,包含姓名,年龄
每调一次contains,contains就要调equals,我们把原杀了
要知道,存的是地址。
package test.bixiangdong;
import java.util.ArrayList;
import java.util.Iterator;
class Person{
private String name;
private int age;
Person(String name,int age){
this.name=name;
this.age=age;
}
public String getName(){
return name;
}
public int getage(){
return age;
}
public boolean equals(Object obj){
if(!(obj instanceof Person)){
return false;
}
Person p=(Person) obj;
System.out.println(p.name+"---"+this.name);
return (this.name.equals(p.name)) && (this.age==p.age);
}
}
public class Test {
public static ArrayList singleElement(ArrayList al){
ArrayList alNew=new ArrayList();
Iterator it=al.iterator();
while(it.hasNext()){
Object obj=it.next();
if(!alNew.contains(obj)){
//alNew.add(it.next());//NoSuchElementException ——————————next()一定要注意,因为你取了二次,最后一次必为空
alNew.add(obj);
}
}
return alNew;
}
public static void sop(Object obj){
System.out.println(obj);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t=new Test();
ArrayList al=new ArrayList();
al.add(new Person("java1",30));
al.add(new Person("java2",30));
al.add(new Person("java1",40));
al.add(new Person("java3",30));
al.add(new Person("java3",30));
al=t.singleElement(al);
Iterator it2=al.iterator();
while(it2.hasNext()){
Person p2=(Person)it2.next();
sop("no repeat:"+p2.getName()+"---"+p2.getage());
}
//kill a element
sop("remove java3"+al.remove(new Person("java1",30)));
}
}
java1---java2 java1---java1 java2---java1 java1---java3 java2---java3 java1---java3 java1---java3 java2---java3 java1---java3 java3---java3 no repeat:java1---30 no repeat:java2---30 no repeat:java1---40 no repeat:java3---30 java1---java1 remove java3true
相关文章推荐
- [bxd学习java基本点]8.linkedList的一个封装,可为堆栈及队列。++++一句话来看continue与break++++ArrayList除重复的标准写法+++++++++
- [bxd学习java基本点]8.linkedList的一个封装,可为堆栈及队列。++++一句话来看continue与break++++ArrayList除重复的标准写法+++++++++
- java学习:ArrayList对象的使用
- [bxd学习java基本点]6arraylist与linkedList特点及Vector已不用了。
- JAVA基础学习之String、StringBuffer、StringBuilder、基本数据类型的使用、整形进制转换、集合Collection、Vector、ArrayList、LinkedList、HashSet、TreeSet等(3)
- [bxd学习java基本点]10.set元素不重复,取元素顺序会变的。TreeSet取值时,是安顺序来的。
- [bxd学习java基本点]10.set元素不重复,取元素顺序会变的。TreeSet取值时,是安顺序来的。
- JAVA之旅(十八)——基本数据类型的对象包装类,集合框架,数据结构,Collection,ArrayList,迭代器Iterator,List的使用
- JAVA之旅(十八)——基本数据类型的对象包装类,集合框架,数据结构,Collection,ArrayList,迭代器Iterator,List的使用
- [bxd学习java基本点]7.linkedList方法,remove移走的要显示元素
- JavaSE入门学习12: Java面相对象之static使用方法
- java中ArrayList使用remove删除元素时几种常见的问题及解决办法
- Java学习笔记87. ArrayList类的两个使用例子
- 请谨慎使用Java基本类型的对象类
- 【Java】SpringBoot入门学习及基本使用
- 【Java学习笔记】Hashset判断自定义对象是否重复
- Java学习笔记之ArrayList基本用法
- JAVA基础学习day24--Socket基础一UDP与TCP的基本使用
- [java]java中的 == 号判断,为什么基本数据类型就是比较内容,而对象则是比较地址?
- Java删除ArrayList中的重复元素的2种方法