java 容器

参考资料

java集合:
在这里插入图片描述
在这里插入图片描述

Collection的大致结构体系是这样的:
在这里插入图片描述但是,一般我们要掌握的并不需要那么多,只需要掌握一些常用的集合类就行了。下面我圈出来的那些:
在这里插入图片描述发现一个特点,上述所有的集合类,除了 map 系列的集合,即左边集合都实现了 Iterator 接口,这是一个用于遍历集合中元素的接口,主要hashNext(),next(),remove()三种方法。它的一个子接口 ListIterator 在它的基础上又添加了三种方法,分别是 add(),previous(),hasPrevious()。也就是说如果实现 Iterator 接口,那么在遍历集合中元素的时候,只能往后遍历,被遍历后的元素不会再被遍历到,通常无序集合实现的都是这个接口,比如HashSet;而那些元素有序的集合,实现的一般都是 LinkedIterator接口,实现这个接口的集合可以双向遍历,既可以通过next()访问下一个元素,又可以通过previous()访问前一个 元素,比如ArrayList。

还有一个特点就是抽象类的使用。如果要自己实现一个集合类,去实现那些抽象的接口会非常麻烦,工作量很大。这个时候就可以使用抽象类,这些抽象类中给我们提供了许多

现成的实现,我们只需要根据自己的需求重写一些方法或者添加一些方法就可以实现自己需要的集合类,工作量大大降低

Iterator 迭代器

public class Test {

    public static void main(String[] args) {


        List<String> list = new ArrayList<>();
        list.add("A");
        list.add("B");
        list.add("C");
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {

            String str = iterator.next();
            if ("B".equals(str)) {
                iterator.remove();
            }
            System.out.println(str);
        }
    }
}

双向迭代 ListIterator 正能输出list 接口实列化的内容

public class Test {

    public static void main(String[] args) {

        List<String> list = new ArrayList<>();
        list.add("A");
        list.add("B");
        list.add("C");
        ListIterator<String> iterator = list.listIterator();
        //向后输出
        while (iterator.hasNext()) {
            String str = iterator.next();
            System.out.println(str);
        }
        System.out.println("------------");
        //向前输出
        while (iterator.hasPrevious()){
            String str = iterator.previous();
            System.out.println(str);

        }
    }
}

List 有序可重复的集合
ArrayLIst操作方法
ArrayList:底层数据结构是数组。线程不安全

底层数据结构是数组。线程不安全

在这里插入图片描述

1、List 接口的三个典型实现:

  ①、List list1 = new ArrayList();

    底层数据结构是数组,查询快,增删慢;线程不安全,效率高

   ②、List list2 = new Vector();

    底层数据结构是数组,查询快,增删慢;线程安全,效率低,几乎已经淘汰了这个集合

   ③、List list3 = new LinkedList();

    底层数据结构是链表,查询慢,增删快;线程不安全,效率高

Set 集合无序不可重复的:

在这里插入图片描述

HashSet集合

A:底层数据结构是哈希表(是一个元素为链表的数组) 

TreeSet集合

A:底层数据结构是红黑树(是一个自平衡的二叉树)

B:保证元素的排序方式

LinkedHashSet集合

A::底层数据结构由哈希表和链表组成。

hashMap 源码分析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值