黑马程序员 课后日记-集合方法

来源:互联网 发布:苹果手机屏幕录像软件 编辑:程序博客网 时间:2024/06/05 15:39
---------------------- android培训、java培训、期待与您交流! ----------------------

直接开写

因为List有角标,是具备增删改查的集合。

addFirst() addLast() getFirst() removeFirst()这一类方法是linkedList特有的方法

getFirst() 获取但不删除

removeFirst() 获取并删除

堆栈:先进后出 first in last outFILO

队列:先进先出 First in first out FIFO

方法参数如果是父类的类型,那么子类传入之后就自动提升为父类类型

Set集合:元素是不可重复的,是无序的

Set接口中的方法和collection一致。

Hashset 内部数据结构是哈希表,是不同步的。

Treeset 内部数据结构是哈希表,是不同步的

如何保证集合元素的唯一性:

如果对象的hashCode值不同,那么不用判断equals方法,就直接存储到哈希表中。

如果对象的hashcode值相同,那么要再次判断对象的equals方法是否为true

如果为true,视为相同元素,不存。如果为false,那么视为不同元素,就进行存储。

所以如果元素要储存到HashSet集合中,必须要覆盖HashCodeEquals方法。一般toString也需要覆盖。

覆盖这些方法时为了根据元素自身的特点进行位置的确定。这样查找的速度快,只要通过算法得到要比较元素的地址,再对集合中这个位置的元素进行比较即可。

如果哈希冲突,解决办法有多种,顺延,串联。

Arraylist在判断元素是否相同,只用到contains方法,不用hash方法,数据结构不同,判断是否相同的方法也不同

删除一个元素,先找有没有,arraylist判断不相同就用equals

Hashset中判断的是hashcodeequals

Remove只能删除第一次出现的那个元素

LinkedHashSet有序

TreeSet

有指定顺序

可以对set集合中的元素进行排序。是不同步的。

Treeset 不看hashcodeequals方法

判断唯一性的方式,就是根据比较方法的返回结果是否为0,是0就是相同元素comparTo

Treeset对元素进行排序的方式一:

让元素自身具备比较功能,元素需要实现comparable接口。覆盖compareTo方法。

TreeSet集合第二种排序方式:

让集合自身具备比较功能。定义一个类事项comparator接口,覆盖compare方法

将该类对象作为参数传递给treeset集合的构造函数。

两个都在以比较器为主,实际开发中比较器

TreeSet使用二叉树的数据结构

每次存入元素之前都要对里面的进行二分法排序

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

今天的代码比较多,看上去比较简单,晚上自己联系代码的时候思路不是非常清晰,需要巩固代码思想。

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

对象方法:

LinkedList:

     addFirst()

     addLast()

offerFirst()

offerLast()

 

getFirst() 获取但不移除,如果链表为空 抛出异常nosuchelementexception

     getLast()

jdk1.6

      peekFirst() 获取但不移除,如果链表为空,返回null

      peekLast()

removeFirst()

      removeLast()

pollFirest();

       pollLast()

---------------------- android培训、java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima