Java集合类概述
来源:互联网 发布:新网互联域名续费80元 编辑:程序博客网 时间:2024/04/29 15:47
Java集合类概述
本文主要简要梳理常用java集合类,自己在日常编程中用的比较多,加深理解,他们所属包:java.util
- List
- Map
- Set
List
首先要明确,List是接口,该接口继承了Collection接口,这个可以通过查阅java API文档。 —— [ java API ]
代码举例说明,请进入Java集合类之List性能比较
List接口三大常用实现类:ArrayList、LinkedList、Vector
结构比较:
相对性能比较:
具体方法比较:
ArrayList
- 基本方法:add, remove, get, set, size, contains
- 注意要点:indexOf(返回第一个对象下标),lastIndexOf(返回最后一个对象小标);如需要同步,需要自行添加同步处理。
- 优势所在:遍历和随机查找速度快。
LinkedList
- 基本方法:add, remove, get, set, size, contains
- 注意要点:高效操作对象方法addFirst,addLast,getFirst,getLast;如需要同步,需要自行添加同步处理。
- 优势所在:新增删除速度快。
Vector
- 基本方法:add, remove, get, set, size, contains
- 注意要点:提供同步功能。
Map
首先要明确,Map是接口,用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。这个可以通过查阅java API文档。 —— [ java API ]
代码举例说明,请进入Java集合类之Map
Map接口两大常用实现类:HashMap、TreeMap
结构比较:
补充说明:
HashMap里面存入的键值对在取出的时候是随机的,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。在Map 中插入、删除和定位元素,HashMap是最好的选择。
TreeMap取出来的是排序后的键值对。插入、删除需要维护平衡会牺牲一些效率。但如果要按自然顺序或自定义顺序遍历键,那么TreeMap会更好。
Set
首先要明确,Set是接口,该接口继承了Collection接口。相对于上面两种类型集合类,Set不保存重复元素。这个可以通过查阅java API文档。 —— [ java API ]
代码举例说明,请进入Java集合类之Set
Set接口两大常用实现类:HashSet、TreeSet、LinkedHashSet
补充说明:
HashSet使用的是复杂的哈希码来管理元素,使用HashSet能够最快的获取集合中的元素,效率非常高(以空间换时间)。会根据hashcode和equals来判断是否是同一个对象,如果hashcode一样,并且equals返回true,则是同一个对象,不能重复存放。
TreeSet也不能存放重复对象,但是TreeSet会自动排序,如果存放的对象不能排序则会报错,所以存放的对象必须指定排序规则。排序规则包括自然排序和客户排序。
- 自然排序:TreeSet要添加哪个对象就在哪个对象类上面实现java.lang.Comparable接口,并且重写comparaTo()方法,返回0则表示是同一个对象,否则为不同对象。
- 客户排序:建立一个第三方类并实现java.util.Comparator接口。并重写方法。定义集合形式为TreeSet ts = new TreeSet(new 第三方类())。
- LinkedHashSet按照插入顺序保存对象,同时还保存了HashSet的查询速度。
- Java集合类概述
- Java集合类概述
- JAVA集合类概述
- Java集合类概述
- Java集合类概述
- Java主要集合类概述
- Java集合类一概述
- Java集合类概述《一》
- Java集合类概述《二》
- Java集合类概述《三》
- 初学Java,集合类概述(二十五)
- 四大名捕---java集合类框架概述
- 初学Java,集合类概述(二十五)
- java collections集合类总结:概述
- 【Java】 集合类概述-List、Map、Set
- java中的并发集合类概述
- java collections集合类总结:概述
- Java集合概述--HashSet类解析
- Java开发基础环境搭建(jdk1.7+tomcat7+mysql5.6)
- Servlet
- 多态与虚函数编程题 #1(C++程序设计第6周)
- 解决 RHEL 7/ CentOS 7/Fedora 出现Unit iptables.service failed to load
- iOS 定位 location heading beacon 初步定位
- Java集合类概述
- C#连接MySql数据库的方法
- JAVA MD5的误区
- dos攻击
- GL_AMBIENT、GL_DIFFUSE、GL_SPECULAR,GL_SHININESS,GL_EMISSION,GL_COLOR_INDEXES的区别
- 从输入网址到显示网页的过程分析
- TCP/IP数据报格式
- 《JavaScript高级程序设计》(1)—&6.对象的创建及相关模式
- Java虚拟机 垃圾回收 之 引用计数