java 集合类
来源:互联网 发布:程序员口号大全 编辑:程序博客网 时间:2024/06/05 04:57
一、
1、所有的Java集合都在java.util包中
2、Java集合框架:Java中的 一套设计优良的接口和类组成的集合框架。
3、List、Set、Map是这个集合体系中最主要的三个接口。
List有序且允许元素重复。ArrayList、LinkedList是主要的实现类。
Set不允许元素重复。HashSet和TreeSet是两个主要的实现类。
Map也属于集合系统,HashMap、TreeMap是主要的实现类。Map是key对value的映射集合,其中key列就是一个集合。key不能重复,但是value可以重复。
要经常遍历集合内元素,就要使用List接口;如果要保证集合中不存在重复的数据,就要用Set接口;如果要通过某一键来查找某一值,就要使用Map接口。
4、Iterator是为了满足遍历的需求写的一个接口(接下来的文章会详细介绍)
二、Java集合框架的解释以及和数据结构的关系:
1、List接口代表的是有序列表
①、ArrayList对应数据结构里的顺序表的概念,在ArrayList内部封装了一个长度可变的数组对象,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,所以可以将ArrayList集合看作一个长度可变数组。(但是Java中数组创建时长度是确定的,之所以可以看作一个长度可变数组其实是新建了一个新数组,然后将原来数组的值复制到新数组里面。可能会认为这样效率很低,但其实ArrayList赋值数组的方法使用的是Java虚拟机实现的本地方法,直接操作内存空间,并不是一个个元素遍历来复制的。)
②、LinkedList既可以当成普通的链表使用,也可以当成队列和栈来使用。LinkedList是List接口的链表实现,同时实现了Deque接口(Queue子接口),链表的随机插入和删除效率高于数组,而随机访问和修改效率则低于数组。这也是LinkedList与ArrayList的差别。
2、Set接口代表的是无序列表
Set接口的契约很单纯,不会做过多的保证。Set集合的重点就是“元素不重复的集合”,而对顺序不做保证(也就是不做限制,有序无序都可以)。实现该接口的类既可以提供有序的实现,也可以提供无序的实现。
①HashSet保存数据的时候显然还是得按一定顺序放入其背后的数组中,但顺序不是用户可控制的,对用户来说就是“无序”。 特点是能快速定位一个元素,放到HashSet中的对象需要实现hashCode()方法,哈希码的算法。
②TreeSet则将放入其中的元素按序存放,这就要求你放入其中的对象是可排序的。
- Java集合:集合类详解
- Java集合-常用集合类
- JAVA【集合一】集合类
- JAVA中的集合类
- JAVA中的集合类
- JAVA中的集合类
- Java集合类(整理)
- java集合类
- JAVA中的集合类
- Java集合类笔记
- JAVA中的集合类
- java集合类
- java集合类总结
- JAVA中的集合类 - -
- JAVA中的集合类
- java集合类
- java 集合类
- java中的集合类
- ZooKeeper教程(一)----Centos7下安装ZooKeeper(单机版)
- Python 序列化JSON串
- 河南理工大学校友会举办《“认识上海”大讲堂》第一期讲座
- KMP算法(C++)
- C语言define定义数组和函数指针
- java 集合类
- 页面加载速度优化
- Linux apache下虚拟主机配置
- Python3中的print函数以及与python2的比较
- HTML 2017-07-23
- css3 伪元素选择器
- 链表翻转,每K个数翻转一次。
- laravel 怎么在模板上使用后台传过来的数组
- EventBus3.0的使用