Java之集合框架collections framework(屌丝版,基于Java1.8)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cadi2011/article/details/84835915

0、用了这么久,总是用ArrayList,List,也没好好总结一下,感觉挺打脸,没办法,你知道工作的,总是用啊用

1、我们经常需要存放多个数据(元素),所以就有需求了,就像容器一样

a、集合类也被称作容器类

b、一部分的集合类是位于java.util包下,这些类全部是单线程下使用的哦

c、在java1.5的时候,在java.util.concurrent包又提供了一些支持多线程的集合类

2、主要分类

a、Collection为首,然后扩展处一堆

b、Map,又扩展出一堆

扫描二维码关注公众号,回复: 4406699 查看本文章

3、Collection的基本层次关系

a、Iterable, Collection扩展了该interface,凡是实现了Iterable的,允许使用foreach进行遍历,这点很重要

我们常说类实现了Iterable,这里Collection也是interface,Collection扩展了Iterable,所以类实现了Collection,即相当于实现了Iterable

这个Iterable有一个抽象方法,叫做iterator(),还有两个default方法。

Iterable是一个范型interface

//注意我把所有注释和package、import全部删除掉了

public interface Iterable<T> {
    
    Iterator<T> iterator();

    default void forEach(Consumer<? super T> action) {
        Objects.requireNonNull(action);
        for (T t : this) {
            action.accept(t);
        }
    }

    default Spliterator<T> spliterator() {
        return Spliterators.spliteratorUnknownSize(iterator(), 0);
    }
}

b、Collection是集合基本的interface,定义的规则里,可以持有多个Object,每个Object也被称为元素

c、List是Collection中最重要的扩展interface,List扩展了Collection,元素为有序(比如你每次遍历时,都与最初保存元素的顺序一致),元素可以重复,即可以有相同的实例对象,默认情况下,按照添加元素的顺序分配下标,比如第一个元素的元素是0,因为是在线性表尾部进行插入的嘛。

d、Set也是Collection下最重要的扩展interface,Set也扩展了Collection,代表一个集合,简单理解为一个大水缸,放入元素的时候是完全没有顺序的,也就是说你每次遍历时,跟你放入元素的顺序无关,跟你各种访问元素的顺序无关,而且Set中不允许放入重复的元素

e、Queue又是一个扩展Collection的接口,一个队列,牛13,在元素上,主要的要求是FIFO(First in First out),只要队列的要求,即只能从队列头部出列(出队)、队列的尾部入列(入队),即可,元素当然可以重复。牛13

4、Map的基本层次关系

a、先再介绍下Map,key-value元素,即映射关系元素,Map中的key不能重复,如果重复了,那就覆盖了

b、Map中的value可以重复,这是自然的了

c、Map中的key、value可以为null,可以是任意类型的对象,必须是引用数据类型,基本数据类型不行

d、HashSet、是基于哈希表实现的Set

e、先介绍到这里吧,每个分类再开个大项来介绍吧

猜你喜欢

转载自blog.csdn.net/cadi2011/article/details/84835915