java集合之HashSet
2015-11-11 08:13
597 查看
HashSet还有一个子类LinkedHashSet,LinkedHashSet集合也是根据元素hashCode值来决定元素存储位置,但它同时使用链表维护元素的次序。除了实现List接口外,LinkedList类还为列表的开头及结尾get、remove和insert元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列和双端队列。
此类实现Deque接口,为add、poll提供先进先出队列操作,以及其他堆栈和双端队列操作。
void addFirst(E e);
void addLast(E e);
Object clone();返回浅表副本
Iterator<E> descendingIterator() 返回以逆向顺序在此双端队列的元素上进行迭代的迭代器。
E element();获取但不移除此列表的头(第一个元素)
get(int index);返回此列表中指定位置处的元素
getFirst();返回此列表的第一个元素。
getLast();返回此列表的最后一个元素。
int indexOf(Object o);返回次列表中首次出现的指定元素的索引,如果此列表中不包含该元素,则返回-1
int lastIndexOf(Object o);返回此列表中最后出现的指定元素的索引,如果此列表中不包含该元素,则返回-1
ListIterator<E> listIterator(int index);返回此列表中的元素的列表迭代器(按适当顺序),从列表中指定位置开始
boolean offer(E e);将指定元素添加到此列表的末尾(最后一个元素)。
boolean offerFirst(E e);在此列表开头插入指定的元素。
boolean offerLast(E e);在此列表末尾插入指定的元素。
E peek();获取但不移除此列表的头(第一个元素)。
E peekFirst();获取但不移除次列表的第一个元素,如果此列表为空,则返回null。
E peekLast();获取但不移除此列表的最后一个元素;如果此列表为空,则返回null。
E poll();获取并移除此列表的头(第一个元素)。
E pollFirst();获取并移除此列表的第一个元素,如果此列表为空,则返回null。
E pollLast();获取并移除此列表的最后一个元素,如果此列表为空,则返回null。
E pop();从此列表所表示的堆栈处弹出一个元素。换句话说就是移除并返回列表的第一个元素。
void push(E e);将元素推入此列表所表示的堆栈。换句话说就是将该元素插入此列表的开头。
E set(int index,E element);将此列表中指定位置的元素替换为指定的元素。
以上代码参考书籍《疯狂JAVA讲义》
此类实现Deque接口,为add、poll提供先进先出队列操作,以及其他堆栈和双端队列操作。
void addFirst(E e);
void addLast(E e);
Object clone();返回浅表副本
Iterator<E> descendingIterator() 返回以逆向顺序在此双端队列的元素上进行迭代的迭代器。
E element();获取但不移除此列表的头(第一个元素)
get(int index);返回此列表中指定位置处的元素
getFirst();返回此列表的第一个元素。
getLast();返回此列表的最后一个元素。
int indexOf(Object o);返回次列表中首次出现的指定元素的索引,如果此列表中不包含该元素,则返回-1
int lastIndexOf(Object o);返回此列表中最后出现的指定元素的索引,如果此列表中不包含该元素,则返回-1
ListIterator<E> listIterator(int index);返回此列表中的元素的列表迭代器(按适当顺序),从列表中指定位置开始
boolean offer(E e);将指定元素添加到此列表的末尾(最后一个元素)。
boolean offerFirst(E e);在此列表开头插入指定的元素。
boolean offerLast(E e);在此列表末尾插入指定的元素。
E peek();获取但不移除此列表的头(第一个元素)。
E peekFirst();获取但不移除次列表的第一个元素,如果此列表为空,则返回null。
E peekLast();获取但不移除此列表的最后一个元素;如果此列表为空,则返回null。
E poll();获取并移除此列表的头(第一个元素)。
E pollFirst();获取并移除此列表的第一个元素,如果此列表为空,则返回null。
E pollLast();获取并移除此列表的最后一个元素,如果此列表为空,则返回null。
E pop();从此列表所表示的堆栈处弹出一个元素。换句话说就是移除并返回列表的第一个元素。
void push(E e);将元素推入此列表所表示的堆栈。换句话说就是将该元素插入此列表的开头。
E set(int index,E element);将此列表中指定位置的元素替换为指定的元素。
import java.util.HashSet; public class TestHashSet { public static void main(String[] args) { HashSet hs=new HashSet(); hs.add(new A()); hs.add(new A()); hs.add(new B()); hs.add(new B()); hs.add(new C()); hs.add(new C()); System.out.println(hs); } } class A{ public boolean equals(Object obj){ return true; } } class B{ public int hashCode(){ return 1; } } class C { public int hashCode(){ return 2; } public boolean equals(Object obj){ return true; } }
import java.util.HashSet; import java.util.Iterator; public class TestHashSet2 { public static void main(String[] args) { HashSet hs=new HashSet(); hs.add(new R(5)); hs.add(new R(-3)); hs.add(new R(9)); hs.add(new R(-2)); System.out.println(hs); Iterator iterator=hs.iterator(); R first=(R)iterator.next(); first.count=-3;//1 System.out.println(hs); hs.remove(new R(-3)); System.out.println(hs); System.out.println("hs是否包含count为-3的R对象?"+hs.contains(new R(-3))); System.out.println("hs是否包含count为5的R对象?"+hs.contains(new R(5))); } } class R { int count; public R(int count){ this.count=count; } public String toString(){ return "R(count属性:"+count+")"; } public boolean equals(Object obj){ R r=(R)obj; if(r.count==this.count){ return true; } return false; } public int hashCode(){ return this.count; } }
以上代码参考书籍《疯狂JAVA讲义》
相关文章推荐
- struts2 hibernate登录
- eclipse jdk adt sdk abtbundle之间的关系
- Struts2中表单与Action传递数据三种方式
- struts2.0获取各种表单的数据
- Struts2中Action访问Servlet API的三种方法
- Struts2的Action和Servlet有什么联系,区别?
- java常量池简单使用
- 实战struts2——用户登录
- struts2下的helloworld(如何让第一个struts2跑起来)——struts2第一讲
- Java file read & write
- Windows平台Java开发环境的搭建
- '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp error
- Struts2中Action接收参数的方法
- struts2读常量顺序
- spring数据源配置
- Spring注解详解
- Java IO代码详解
- how to create java test folder in intellij idea
- JAVA事务的特性
- MyEclipse10.0安装 SVN插件