java集合相关简介
来源:互联网 发布:网络锁是什么意思 编辑:程序博客网 时间:2024/06/13 07:47
一、集合与数组简介
数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,要对数组进行增加减少长度操作复杂,所以引入集合。
集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。
二、集合框架
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和指定枚举类关联起来
阅读全文
0 0
- java集合相关简介
- java集合之集合简介
- Java集合之一集合简介
- Java集合简介
- Java集合容器简介
- java集合简介
- Java集合框架简介
- Java集合简介
- Java集合简介
- java 集合框架简介
- Java集合工具包简介
- java的集合简介
- Java集合简介
- java集合框架简介
- java集合框架简介
- java集合框架简介
- Java集合相关操作
- java集合相关知识
- 利用anjs新闻关键词的抓取
- 在创建分类账(Oracle General Ledger 会计科目设置程序)出错
- json 介绍
- 2017-7-23
- 在windows Anaconda中安装tensorflow 以及spyder 插件
- java集合相关简介
- cmd命令
- 滑块控件的使用
- PHPWord
- 人脸识别——FaceBook的DeepFace、Google的FaceNet、DeepID
- Lightoj 1027 期望
- 百练_2801:填词
- 用tushare包开发的股票分析脚本
- 【微信小程序】在手机上查看调试微信小程序