黑马程序员技术交流社区
标题:
day3-6笔记
[打印本页]
作者:
ztxtxwd
时间:
2018-11-20 16:15
标题:
day3-6笔记
本帖最后由 ztxtxwd 于 2018-11-20 18:02 编辑
day3-6笔记
day3
List集合的特点
元素存取有序
元素可以重复
有索引
Set集合特点
元素不可重复
没有索引
HashSet特点
元素不可重复
没有索引
元素存取无序(存入取出顺序无关)
底层采用 哈希表 结构(查询快)
哈希表=数组+链表或红黑树
HashSet保证元素不重复的原理
执行add()方法时首先会调用hashcode()计算参数的hash值,如果在数组中没有,添加,返回true,若相同则将参数与对应链表或红黑树下所有元素使用equals()比较,有相同的不添加,返回false,没有则添加,返回true
自定义JavaBean添加到HashSet时去重的做法
定义时重写hashcode()和equals()方法
数组结构的特点
长度固定,查询快,增删慢
栈结构的特点
一个开口,先进后出(FILO)
队列结构特点一出口,一入口,先进先出(FIFO)
单向链表结构特点
由节点组成,每个节点存储数据和下一个节点的地址值
增删快,查询慢
可变参数的格式
用在方法的参数中修饰符 返回值类型 方法名(int... 变量名) { // 可以直接将 变量名 当作 数组名 使用}方法名();
集合工具类
Collections.shffule()
.addAll()
.sort()
红黑树的特点
平衡:左右子节点数相等
二叉:每个节点最多有2个子节点
查找:节点存储的顺序是按大小顺序排列的
查询比链表快,增删比数组快(数组和链表的折中)
元素添加过程中就完成了排序
day4
Map集合特点
一个元素包含两个值,一个键一个值
key不允许重复
一个键只能对应一个值
Map集合适合存储什么样的数据
成对出现的
Map接口常用实现类
HashMap
HashMap类特点
底层哈希表,key存取无序不可重复
Map定义的共性方法
put(k key,v value)
remove(Object key)
get(Object key):根据键获取值
如何添加键值对
如何使用keyset()方法实现Map的遍历
Map对象调用keySet()获取所有key的Set集合
遍历set,获取每个key
通过get(k key)获得value
键值对和Entry对象的关系
一个键值对可以构成一个Entry对象
利用entrySet()遍历Map
entrySet()获取所有键值对对象组成的Set集合
Entry对象有getKey()和getValue()方法
List.of(1,2,3)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2