java集合相关简介
2017-07-24 10:18
218 查看
一、集合与数组简介
数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,要对数组进行增加减少长度操作复杂,所以引入集合。
集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。
二、集合框架
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
三、常用接口和类简介
数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,要对数组进行增加减少长度操作复杂,所以引入集合。
集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。
二、集合框架
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
三、常用接口和类简介
List
List是一个接口。 List是有序的Collection。 List允许存储重复的元素。 List允许存储所有类型元素,包括NULL。 实现List接口的常用类主要有: 1、ArrayList: 一个可变大小的数组 不同步,即当有两个线程同时调用时,一方改变不会影响另一方。 2、LinkedList: 一个双向循环链表,其内每个对象除了数据本身外,还有两个引用,分别指向前一个元素和后一个元素 不同步 3、Vector:几乎与ArrayList完全相同,但其实现了同步。 4、Stack继承自Vector,实现一个后进先出的堆栈。Stack提供5个额外的方法使得Vector得以被当作堆栈使用。 对于ArrayList,查询速度很快,增加和删除(非最后一个节点)操作非常慢(本质上由数组的特性决定的) 对于LinkedList,查询速度非常慢,增加和删除操作非常快(本质上是由双向循环链表决定的)
Set
Set是一个接口。 Set实现了Collection接口。 Set不允许出现重复的元素。 实现Set接口的常用类主要有: 1、HashSet: 使用的是相当复杂的方式来存储元素的,使用HashSet能够最快的获取集合中的元素,效率非常高(以空间换时间)。 2、TreeSet: 会自动排序,如果存放的对象不能排序则会报错,所以存放的对象必须指定排序规则。排序规则包括自然排序和客户排序。 ①自然排序:TreeSet要添加哪个对象就在哪个对象类上面实现java.lang.Comparable接口,并且重写comparaTo()方法,返回0则表示是同一个对象,否则为不同对象。 ②客户排序:建立一个第三方类并实现java.util.Comparator接口。并重写方法。定义集合形式为TreeSet ts = new TreeSet(new 第三方类());
Map
Map是一个接口。 Map没有继承Collection接口。 Map提供key到value的映射。 Map不能包含相同的key。 Map的key只能映射一个value。 Map接口提供3种集合的视图,一组key集合,一组value集合,或者一组key-value映射。 实现Map接口的常用类主要有: 1、HashMap:Map接口的典型实现类。无序、不同步、key/value允许为NULL。 2、Hashtable:类似于HashMap。不同的是:同步(即线程安全)、key/value不允许为NULL。 3、TreeMap:会自动排序的HashMap。其排序方式等同于TreeSet。 4、LinkHashMap:有序的HashMap。不同于TreeMap,它是用双向链表来维护 key-value 对的次序(其实只考虑了key的次序),该链表负责维护Map的迭代顺序,迭代顺序与 key-value 对的插入顺序一致。 5、WeakHashMap: 与HashMap的用法基本相似。不同在于: HashMap的值保留了对实际对象的强引用,这意味着只要该HashMap对象不被销毁,该HashMap 中的所有key 所引用的对象就不会被垃圾回收, hashMap也不会主动删除这些 key-value 对;但WeakHashMap只保留了对实际对象的弱引用,这意味着如果 WeakHashMap 对象的 key所引用的对象没有被其他强引用变量所引用, 则这些key所引用的对象可能被垃圾回收, WeakHashMap也可能自动删除这些 key所对应的 key-value对。 6、IdentityHashMap:与HashMap的用法基本相似。不同在于: IdentityHashMap 在处理两个key值相等时比较独特:在 IdentityHashMap中,当且仅当两个key严格相等(key1==key2)时, IdentityHashMap 才认为这两个key相等;对于普通的 HashMap 而言,只要 key1和 key2通过 equals() 方法比较返回true,且它们的 hashCode 值相等即可。 7、EnumMap: EnumMap在内部以数组的形式保存 EnumMap根据key的自然顺序(即枚举值在枚举类中定义顺序)来维护key-value 对的顺序。 EnumMap不允许使用null来做为 key,但允许null作为value。 创建EnumMap时必须指定一个枚举类,从而将该 EnumMap和指定枚举类关联起来
相关文章推荐
- 一个菜鸟java码农的成长之路(1):集合简介
- java基础笔试题(三)--集合相关
- java集合简介
- Java中Connection集合简介
- Java Collection 集合简介(转)
- 【慕课笔记】第六章 JAVA中的集合框架(下) 第7节 Comparable&Comparator简介
- java集合相关类与接口
- java中的几种集合简介
- Java复习第三天---集合框架的相关知识
- JAVA的API中集合相关方法测试(JDK_API_1_6_zh_CN_2007.CHM)
- Java基础之集合框架类及泛型简介
- 第12章--java集合简介及List集合的使用
- 阿翔编程学-JCS(Java Caching System)简介以及相关文档
- Java并发包中CopyOnWrite容器相关类简介
- java相关集合和java各种集合的线程安全
- Java集合之一集合简介
- Java基础之Java简介、变量、数据类型、运算符及其相关配置
- java相关 集合总结 常见开发实用
- java_集合体系之Collection框架相关抽象类接口详解、源码——02
- java.util.concurrent包中线程安全的集合简介