• Java的Collection,List,ArrayList,LinkedList


    先来看看Collection,List,ArrayList,LinkedList它们之间的关系

    Collection/Iterable/List都是接口。

    List是有序的可重复的,这一点可以从官方文档中得出。

    List是一种有序的集合
    An ordered collection (also known as a sequence)
    与sets不同,list的元素可以重复
    Unlike sets, lists typically allow duplicate elements.

    创建一个list对象并给这个list添加元素。

    因为List是接口,所以要用实现这个List接口的类ArrayList来创建对象。

      @Test
        public void listTest() {
            List<String> list=new ArrayList<>();
            list.add("Welcome");
            list.add("to");
            list.add("java");
            System.out.println(list);
    
        }
    }

    结果:注意,虽然直接把list变量名称写进了System.out.println(list),但实际输出的却是我们通过add方法创建的List。

    而不是list的引用地址,由此可见list默认调用了toString方法.

    [Welcome, to, java]

    ArrayList

    ArrayList底层是用数组来实现存储的,特点:查询效率高,增删效率低,线程不安全。

    与之对应的LinkedList:查询效率低,增删效率高,线程不安全。

    为什么ArrayList的增加删除效率低呢?因为它的底层是通过copy数组的方式来达到增加删除的。

    比如,ArrayList要删除下面数组中的3,它会把4移到3,5移到4.

    [1,2,3,4,5]
  • 相关阅读:
    Click: 命令行工具神器
    Pipenv: Python包管理神器
    如何让你的Python程序支持多语言
    Volatile变量
    简单排查java应用CPU飙高的线程问题
    java中的clone
    接口限流
    HTTP协议详解
    [转]nginx 源码学习笔记(十五)—— ngx_master_process_cycle 多进程(一)
    nginx slab内存管理
  • 原文地址:https://www.cnblogs.com/majestyking/p/12402411.html
Copyright © 2020-2023  润新知