Java基础知识(五)

Collection(接口)----------Collections(工具类)
子接口:List(线性表)------Set
实现类:ArrayList:
底层是动态数组,
LinkedList
底层是链表
链表向上造型成Queue(队列接口),特点先进先出(FIFO)
进:offer(E e)
出:poll()
查看:peek()
向上造型成Deque(双端队列接口),特点两端都可以进与出
进:offerFirst(E e)
offerLast(E e)
出: pollFirst()
pollLast()
双端队列禁止一端的进出,就变成了栈的数据结构。
特点:先进后出(FILO)
进:push(E e)

出:pop()

Set接口:

无序,不可重复(元素类型的equals方法比较)
无序:与放入顺序不一致。
比喻:List好比一个有格子顺序的盒子
Set好比一个袋子。
实现类:
HashSet:底层是基于散列算法(哈希算法)来存储的数据结构

treeSet:底层是基于有序的二叉树的数据结构

重写HashCode()和equals方法后的成立关系。

hash值相同,equals不一定为true
hash值不同,equals一定false.
equals为true,hash值一定相同

equals为false,hash值有可能一样

Map接口:存储数据是以key-value形式存储的。key相当于

value的索引。作为key的对象类型必须重写hashCode方法。
因为key也是唯一的,不能重复的。Map的key底层就是
hashSet集合。
Map接口提供的常用方法:
put(K k,V v):作用是向Map对象中添加元素
get(K k):作用是通过k获取对应的value值。
当Map中没有相应的k,那么返回的value就是null

特点:key值可以为null.
Map接口最常用的实现类:
HashMap
1:集合框架:
List接口有两个实现类ArrayList和LinkedList
有序可重复的
ArrayList:动态数组
LinkedList:链表---->Deque(双端队列)-->(Queue)
Set接口有两个实现类HashSet和TreeSet
无序不可以重复
Map接口的特点:
是以key-value这种形式存数据的。
key作为索引,是唯一的,不能重复。
value可以重复。
如存数据时:
"one"---"张三"
"two"---"李四"
"three"---"张三"
常用方法:
put(K key, V vlaue);存数据
get(K key):通过key取value。如果key不存在,返回null.
keySet():返回所有key值的Set集合
values():返回所有value值的Collection集合
entrySet():将每一个key-value封装成内部类Entry对象,返回
所有的Entry对象的Set集合

猜你喜欢

转载自blog.csdn.net/qq_40717759/article/details/79973368