Collection子类和map

    首先:Collection是Java中,集合类(容器)的顶级接口,其根接口是Iterator。Collections,是集合类的一个工具类,为集合对象提供静态方法以实现对各种集合的搜索、排序、线程安全化等操作;Collections常用方法链接。就酱~。
    所有的集合类,都实现了Iterator接口,这是一个用于遍历集合中元素的接口,主要包含以下三种方法:
 1. hasNext()是否还有下一个元素。Boolean
 2. next()返回下一个元素。Object
 3. remove()删除当前元素。

|---- Collection集合 
       |---- List(允许插入多个重复元素或null,有序的)
              |---- ArrayList: 底层数据结构是【动态数组】,效率高(非线程安全),随机访问速度快,但不便于增删(需要移动                                         数据,保存到新数组)。允许插入多个重复元素或null,并保持插入顺序。(去除重复数据:转换成                                               HashSet或LinkedHashSet,再转换回来)
              |---- LinkedList: 底层数据结构是【双向链表】,随机访问速度慢,数据修改很方便(只需要移动指针)。允许插入多                                            个重复元素或null,并保持插入顺序。同时也符合Queue的先进先出特征、栈的先进后出特征等。
              |---- Vector: 类似ArrayList,线程安全,因此消耗性能较多。
       |---- Set(数据不重复,允许存储null)
               |---- HashSet:哈希表(实际上是一个HashMap实例)支持,元素顺序无序。过存储元素的 hashCode 方法和 equals 方                                          法来确定元素是否重复。非线程安全,容量无限。
                      |---- LinkedHashSet:继承HashSet,基于LinkedHashMap来实现有序。非线程安全。
               |---- TreeSet:底层用二叉树保持排序,元素顺序有序。非线程安全。
       |---- Queue
|---- Map容器 
      |---- HashMap:使用数组和链表来实现对数据的存储。非同步的,没有对读写等操作进行锁保护,所以是线程不安全。
            |---- LinkedHashMap
      |---- HashTable线程安全,但性能消耗多,不允许存储null值(当key/value为null时,抛出异常NullPointerException)
      |---- TreeMap:底层用二叉树排序,元素顺序有序。非线程安全。

Collection集合类  常用的函数API
Boolean    add(Object obj)     尾部添加元素
Boolean    add(int index, Object obj) 添加元素到index指定的位置
Object    get(Integer index) 获取指定位置元素
Integer    size() 返回集合元素长度
Object    remove(int index) 删除并返回指定位置的元素 // removeAll
void    clear() 集合清空
Object  set(Integer index, Object obj) 指定元素替代指定位置的元素
Boolean    contains(Object o) 集合中是否包含指定元素对象
Object[] toArray()  集合转数组(数组转集合:Arrays.asList(arrays))
Collection clone()  复制集合本身并返回
Boolean isEmpty()  判断集合是否为空,为空则返回true
Integer indexOf(Object o)  返回对象o所在集合的下标位置,若不存在返回-1
Integer lastIndexOf(Object o)

 返回最后一个对象o所在集合的下标位置,若不存在则返回-1

…… ……
list.forEach(a ->{
	System.out.println(a);
}); //list遍历
map.forEach((k,v) -> {
	System.out.println("key: " + k + ", value:" + v);
}); //map遍历

猜你喜欢

转载自blog.csdn.net/J1014329058/article/details/89515350