Java学习笔记-集合类(1)
来源:互联网 发布:微信朋友圈的网络骗局 编辑:程序博客网 时间:2024/06/06 23:17
(1)集合的分类
1 单列集合 Collection
Collection是最基本的集合接口,类不能直接继承自Collection,都是继承自Collection的子接口List和Set。
1.1 List
List的特点是有序可重复。使用此接口可以精确的控制元素的插入位置,能够通过索引的位置来访问元素内容。
实现List接口的常用类有LinkedList、ArrayList、Vector。
1.1.1 ArrayList
ArrayList实现了可变大小的数组,允许null元素。因为是由数组实现,内存地址连续,所以查找速度快;在增删的时候由于要考虑到数组的增容,需要拷贝数据,所以增删速度慢。
ArrayList没有同步。
1.1.2 Vector
Vector的实现原理和ArrayList相似,但是Vector是同步的。因为考虑到了线程安全问题,所以效率要低一点。
1.1.3 LinkedList
LinkedList是用链表实现的,所以增删速度快,查找速度慢。允许null元素。
1.2 Set
Set无存储顺序,不可以重复,允许使用null元素。
1.2.1 HashSet
HashSet底层是以哈希表实现, 存取速度快,线程不安全。
在往HashSet添加元素的时候,首先会调用元素的HashCode方法得到元素的哈希码值,然后经过运算得出该元素在哈希表中的位置。
情况1:如果算出的位置目前还没有存在任何元素,则可以直接将该元素添加到哈希表中。
情况2:如果算出的位置目前已经存在其他的元素,那么还会调用元素的equals方法再与这个位置上的元素比较一次。如果equals方法返回的是true,那么该元素被视为重复元素,不允许被添加;如果返回的是false,那么该元素也可以被添加。
1.2.2 TreeSet
TreeSet底层是二叉树的数据结构,默认对元素进行了排序。
往TreeSet添加元素的时候,
情况1:如果元素具备自然顺序的特点,那么TreeSet会根据元素的自然顺序特性进行排序存储。
情况2:如果不具备自然顺序的特点,那么元素的类就必须要实现Comparable接口,把比较的规则定义在CompareTo方法上。
情况3:如果不具备自然顺序的特点,也没有实现Comparable接口,那么在创建TreeSet对象的时候必须要传入比较器对象。比较器的定义格式:
class 类名 implements Comparator { }
2 双列集合Map
Map存储的是键值对。键不可以重复,值可以重复。
2.1 HashMap
HashMap底层是哈希表数据结构,可以存入null键或者null值,线程是不同步的,存取速度快。
2.3 TreeMap
TreeMap底层是二叉树的数据结构,默认对元素进行自然排序,线程不同步。
2.3 HashTable
HashTable底层是哈希表数据结构,不可以存入null键或者null值。
0 0
- Java学习笔记-集合类(1)
- Java学习笔记(六)集合类
- java集合类概述(学习笔记)
- java集合类学习笔记
- java 集合类学习笔记
- Java集合类学习笔记
- Java集合类学习笔记
- Java学习笔记(集合)
- java集合笔记(1):java集合类图
- Java集合学习笔记
- JAVA学习笔记--集合
- java学习笔记--集合
- JAVA集合学习笔记
- Java学习笔记-集合
- Java集合学习笔记
- JAVA学习笔记--集合
- Java学习笔记【集合】
- 【Java学习笔记】集合
- mvn package出现“编码GBK的不可映射字符”
- 两个app之间的跳转 判断一个app是否存在
- c#写日志(.text)
- 百度导航栏
- 比较Activiti中三种不同的表单及其应用
- Java学习笔记-集合类(1)
- 笔记整理
- 数据挖掘十大经典算法
- 文件权限管理__2__rwx权限
- deviceQuery查看属性
- 动态下拉列表
- 装饰者模式在Android上的应用 之 Context
- linux线程传参数
- 精心整理的操作系统相关概念