美文网首页
Java基础(三) 集合

Java基础(三) 集合

作者: 黑客军团_charles | 来源:发表于2020-04-26 22:35 被阅读0次

#集合

    Java集合类存放于 java.util 包中,是一个用来存放对象(引用类型)的容器(存储基本类型会被自动装箱,转化陈包装类)

    ①、集合只能存放对象。比如你存一个 int 型数据 1放入集合中,其实它是自动转换成 Integer 类后存入的,Java中每一种基本类型都有对应的引用类型。

    ②、集合存放的是多个对象的引用,对象本身还是放在堆内存中。

    ③、集合可以存放不同类型,不限数量的数据类型。

##1、集合的各体系结构

    Java 的集合 主要由两个接口派生出来的,分别是Collection和Map。

### 1.1 collection 集合   

    collection 主要派生了3个子类,分别为List(列表)、Set(集)、Queue(队列)。其中,List、Queue中的元素有序可重复,而Set中的元素无序不可重复;

####1.1.1 List 集合

  list 集合是有序的、可重复的。主要有两个实现类ArrayList和LinkedList。

#####1.1.1.2 ArryList

    1)  ArryList 底层是基于动态数据实现的,且线程不安全。

    2) 实现了序列化接口java.io.Serializable,支持序列化。

    3) 实现了Cloneable接口,它允许在堆中克隆出一块和原对象一样的对象,并将这个对象的地址赋予新的引用,这样显然对新引用的操作,不会影响到原对象。

    ArrayList 是如何扩容的?

#####1.1.1.3 LinkedList       

      LinkedList 底层是基于双向链表实现的。且线程不安全

#####1.1.1.4 Vector     

      和ArrayList实现方式相同, 但考虑了线程安全问题, 所以效率略低。

#### 1.1.2 queue

####1.1.3 set

##  1. ArrayList 和 LinkedList 的区别、优缺点以及应用场景?

    ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全;

>1)底层实现区别:

    ArryList 底层是基于动态数据实现的,而LinkedList是基于双向链表实现的。

>2)优缺点:

    由于ArrayList底层由动态数组实现的,而数组是按照顺序且连续的存储数据。所以一般情况下查询的速度会比LinkedList快,但是插入或者删除数据的速度较LinkedList慢,因为数组的结构是连续的,每一次插入或删除数据就需要变更整个数组中的数据的位置(末尾插入和删除除外)。

>3)应用场景

    应用场景由他们的特点决定的。ArryList适用与查询多的场景,而LinkedList适用与增删的场景。

    知识扩展

    1) 链表是物理存储结构上非连续的、非顺序的存储结构数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

    2) 链表的结构:链表是由很多节点构成的,每个节点又包含两部分,即数据和指针,数据存储实际的数据,指针保存下一个节点的位置。

相关文章

  • 一篇文章,全面解读Android面试知识点

    Java Java基础 Java集合框架 Java集合——ArrayList Java集合——LinkedList...

  • Java基础——集合体系Map详解

    Java基础——集合体系Map详解 上文中我们了解了集合体系中的单列集合:Java基础——集合以及Java集合——...

  • java SE目录

    java SE目录 java基础(一)java基础(二)关键字面向对象(一)面向对象(二)面向对象(三)集合(一)...

  • Java基础

    Java基础 集合基础 集合框架 多线程基础 多线程框架 反射 代理 集合基础 ArrayList LinkedL...

  • java基础(三)--集合

    Collection: 添加:add(Obj); 删除:remove(Obj);判断:contains(Obj),...

  • Java基础(三) 集合

    #集合 Java集合类存放于 java.util 包中,是一个用来存放对象(引用类型)的容器(存储基本类型会被...

  • java集合框架知识点

    java集合框架的知识点接口 集合 元素 java key 阅读2771Java集合框架作为Java编程语言的基础...

  • Java面试题目录

    垃圾回收 面试题-Java基础-垃圾回收 java垃圾回收 集合 40个Java集合面试问题和答案 Java集合框...

  • Java面试题目录

    垃圾回收 面试题-Java基础-垃圾回收 java垃圾回收 集合 40个Java集合面试问题和答案 Java集合框...

  • Java基础之LinkedList源码解析

    Java集合源码解析系列 Java基础之HashMap源码解析 Java基础之LinkedHashMap源码解析 ...

网友评论

      本文标题:Java基础(三) 集合

      本文链接:https://www.haomeiwen.com/subject/ommswhtx.html