HashSet的原理
-----|Collection 单列集合的根接口
---------|List如果实现了List接口的集合类,具备的特点:有序,可重复
------------|ArrayList(常用) ArrayList底层是维护了一个Object数组实现的。特点:地址连续,查询速度快,增删慢
------------|LikeList
------------|Vector(了解即可)
---------|Set 如果实现了其接口的集合类,具备的特点:无序,不可重复
------------|HashSet :其存取速度都比较快的。
------------|TreeSet
Set接口下面的实现类(主要有:)HashSet、TreeSet
HashSet的原理:
-----|Collection 单列集合的根接口
---------|List如果实现了List接口的集合类,具备的特点:有序,可重复
------------|ArrayList(常用) ArrayList底层是维护了一个Object数组实现的。特点:地址连续,查询速度快,增删慢
------------|LikeList
------------|Vector(了解即可)
---------|Set 如果实现了其接口的集合类,具备的特点:无序,不可重复
------------|HashSet :其存取速度都比较快的。
------------|TreeSet
Set接口下面的实现类(主要有:)HashSet、TreeSet
HashSet的原理:
一定要重写hashCode,equals
import java.util.HashSet;
import java.util.Random;
import java.util.Scanner;
import javassist.bytecode.Descriptor.Iterator;
class Person
{
String name;
int id;
Person(String name,int id)
{
this.id = id;
this.name = name;
}
@Override
public int hashCode() {//一定要重写
// TODO Auto-generated method stub
return this.id;
}
public String toString()
{
return id+" "+name;
}
@Override
public boolean equals(Object obj) {//一定要重写
Person p = (Person)obj;
return this.id==p.id;
}
}
public class wu
{
public static void main(String [] args)
{
Scanner scanner = new Scanner(System.in);
HashSet li = new HashSet();
li.add(new Person("张三",11));
li.add(new Person("丽水",12));
li.add(new Person("张三",11));
li.add(new Person("美丽",14));
System.out.print(li);
}
}