黑马程序员 课后日记-集合方法
来源:互联网 发布:苹果手机屏幕录像软件 编辑:程序博客网 时间:2024/06/05 15:39
直接开写
因为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集合中,必须要覆盖HashCode和Equals方法。一般toString也需要覆盖。
覆盖这些方法时为了根据元素自身的特点进行位置的确定。这样查找的速度快,只要通过算法得到要比较元素的地址,再对集合中这个位置的元素进行比较即可。
如果哈希冲突,解决办法有多种,顺延,串联。
Arraylist在判断元素是否相同,只用到contains方法,不用hash方法,数据结构不同,判断是否相同的方法也不同
删除一个元素,先找有没有,arraylist判断不相同就用equals
Hashset中判断的是hashcode和equals
Remove只能删除第一次出现的那个元素
LinkedHashSet是有序的
TreeSet
有指定顺序
可以对set集合中的元素进行排序。是不同步的。
Treeset 不看hashcode和equals方法
判断唯一性的方式,就是根据比较方法的返回结果是否为0,是0就是相同元素comparTo
Treeset对元素进行排序的方式一:
让元素自身具备比较功能,元素需要实现comparable接口。覆盖compareTo方法。
TreeSet集合第二种排序方式:
让集合自身具备比较功能。定义一个类事项comparator接口,覆盖compare方法
将该类对象作为参数传递给treeset集合的构造函数。
两个都在以比较器为主,实际开发中比较器
TreeSet使用二叉树的数据结构
每次存入元素之前都要对里面的进行二分法排序
------------------------------------------------------------------------------------------------------------------------------
今天的代码比较多,看上去比较简单,晚上自己联系代码的时候思路不是非常清晰,需要巩固代码思想。
---------------------------------------------------------
对象方法:
LinkedList:
offerFirst()
offerLast()
getFirst() 获取但不移除,如果链表为空 抛出异常nosuchelementexception
jdk1.6
removeFirst()
pollFirest();
- 黑马程序员 课后日记-集合方法
- 黑马程序员 课后日记--泛型-Map集合
- 黑马程序员 课后日记-sleep-wait
- 黑马程序员 课后日记-String,StringBuffer对象
- 黑马程序员 课后日记--包装类
- 黑马程序员 课后日记-工具类
- 黑马程序员 课后日记-Date类
- 黑马程序员日记5----集合
- 黑马程序员--学习日记--集合框架
- 黑马程序员_java学习日记_集合
- 黑马程序员-java学习日记之集合
- 黑马程序员--学习日记 (四)集合
- 黑马程序员--java基础日记--集合
- 黑马程序员--Java学习日记之集合(集合体系&迭代器)
- 黑马程序员,collection集合方法
- 黑马程序员-LinkedList 特有方法学习日记
- 黑马程序员_日记65_Arrays方法
- 黑马程序员 日记六:集合的学习总结
- oracle 在plsql中创建procedure并调用
- 字符编码乱码问题
- 20个项目托管站点推荐
- hbase安装配置(整合到hadoop)
- Window XP驱动开发(二) 环境搭建(VS2008+WDK+DDKWzard)及示例源码分析
- 黑马程序员 课后日记-集合方法
- SQL:having 用于排除某些数据的例子
- Makefile中的变量及条件判断的使用
- java 实际中有工作价值的问题
- IntelliJ IDEA 11新特性介绍
- 浅谈过载保护
- Android 3D引擎
- MySQL Database backup and restore
- Android事件传递机制之【onTouch方法】