共计 876 个字符,预计需要花费 3 分钟才能阅读完成。
容器
容器在解决什么问题?
存储一堆的数据是容器解决的最基本的问题。针对不同的需求有不用的容器。主要在于删除,插入,查询,效率,长度,排序,去重,数据结构
- 数组。数组是 Java 内置的容器。效率很快,因为是最基本的。但是长度却被限制,其余的容器去很好的解决这个问题。
- list:list 集合是对数组的一个扩充。对于排序,对于数组长度的限制,ArrayList 对于一般情况足够使用,但是如果需要进行大量的插入和删除工作,那么还是需要用链表实现的 LinkedList
- set:set 集合是为了进行去重,HashSet 一般情况足够对付,但是如果同时需要兼顾排序的话,则需要使用 TreeSet, 如果是需要插入和删除上,则使用 LinkedHashSet。但是 set 都是不能快速的进行访问。
- map:map 集合主要解决键值对数据结构的数据。一般使用 HashMap 足够使用,但是需要排序则使用 TreeMap。
数组
基础
- 初始化
1.String[] strings = new String[n];
2.String[] strings = {"1","2"};
3.String[] strings = new String[]{"1","2"};
- 唯一访问的属性,length(), 该属性只代表数组的长度,不代表里面具体元素的个数
- 访问,[]
-
排序:
- 对象实现 Comparable 接口,Arrays.sort()
- 定义 Comparator 的实现类
集合
分类
-
colleciton
- list
- set
- map
hashMap
hashMap 的使用就在于对于键的使用,使得我们可以快速的查询。但是如果我们都把键存储在数组中,使用数组进行查找总是很慢的。所以我们可以折中,使用键生成的 hash 码来存储值。但是 hash 码有可能相同,所以我们可以将相同的 hash 码的值存储在同一个容器中。所以这个 hash 码的设计变得很关键。因为如果设计固定不变,就变回我们刚才所说的情况。但是如果 hash 码设计成每次都是变化的,那么这个值将不好查询。
转换
array –> list
list,set –> Collection.toArray()
list –> set
正文完
发表至: java
2019-07-04