【DAY11】关于集合的学习笔记

成员变量 === 属性  === 字段 === Field

成员函数 === 方法  === Method

构造函数 === 构造器 === 构造子  === Constructor

类  === Class

List接口中常用类

--------------

        Vector:线程安全,但速度慢,已被ArrayList替代。

        ArrayList:线程不安全,查询速度快。

        LinkedList:链表结构,增删速度快。

        取出LIst集合中元素的方式:

        get(int  index):通过脚标获取元素。

        iterator():通过迭代方法获取迭代器对象。


关于Hashcode

--------------

        1、hashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,hashCode是用来在散列存储结构中确定对象的存储地址的;

        2、如果两个对象相同,就是适用于equals(Java.lang.Object) 方法,那么这两个对象的hashCode一定要相同;

        3、如果对象的equals方法被重写,那么对象的hashCode也尽量重写,并且产生hashCode使用的对象,一定要和equals方法中使用的一致,否则就会违反上面提到的第2点;

        4、两个对象的hashCode相同,并不一定表示两个对象就相同,也就是不一定适用于equals(java.lang.Object) 方法,只能够说明这两个对象在散列存储结构中,如Hashtable,他们“存放在同一个篮子里”。

       

 key.hash==p.hash && (key==p || key.equals(p));  //判断元素唯一性(Boolean)

迭代器

-------------------------

        迭代是取出集合中元素的一种方式。

        因为Collection中有iterator方法,所以每一个子类集合对象都具备迭代器。

        用法示例:

        

//常规FOR循环使用迭代方法
for(Iteratoriter = iterator();iter.hasNext();  )
{
  System.out.println(iter.next());
}
//while循环
Iteratoriter = l.iterator();
while(iter.hasNext())
{
  System.out.println(iter.next());
}

TIP1:

        迭代注意事项

        迭代器在Collcection接口中是通用的,它替代了Vector类中的Enumeration(枚举)。

        迭代器的next方法是自动向下取元素,要避免出现NoSuchElementException。

        迭代器的next方法返回值类型是Object,所以要记得类型转换。


TreeSet

---------------

1.使用比较方法判断对象是否重复。

2.比较方法实现有两种

a)自定义Comparator比较器,和TreeSet关联。

b)让javaBean实现Comparable接口,实现CompareTo()方法。

3.TreeSet可以容纳null元素。

4.TreeSet可以使用降序排列。

通过descendingIterator()方法得到降序迭代器实现。

5.TreeSet默认升序排列。


本文出自 “yehomlab” 博客,转载请与作者联系!

你可能感兴趣的:(vector,接口,equals)