集合框架 set list
集合框架
功能框架,只是一种结构
collection
List Set
List 经常用到的ArrayList LinkedList
ArrayList 数组列表:
下标 长度
从构造器来分析 ArrayList初始容量为10
后续添加数据的过程中会继续拓展式增加当前的容量
add(E e) 添加 E代表什么?E代表着所有的数据类型
ArrayList list = new ArrayList();
list.add(1);
list.add(true);
list.add("String");
list.add('A');
System.out.println(list.size());
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
ArrayList 获取数据的时候是使用的随机抽取机制来获得数据的
查询的速度 快
对数据操作起来 慢
LinkedList 链表
既然是链表那么就会让所有的数据连接在一起
链表上的每个元素都会记载着后一个元素的存储地址
查询的速度 慢
修改数据 快
http://blog.csdn.net/i_lovefish/article/details/8042883
Set 常用的hashSet TreeSet
Set会去掉重复放入值
HashSet集合中不可存入相同的数据但是可以存放NUll值
TreeSet集合是有序的排列(自然顺序)中不允许存放null值会报空指针
Map 独立的
key-value 是按照键值对的形式存储的
key不可重复 看最后一个key来决定其中要存储的是谁
key值不好获取,但是key相当于我们日常中排序
value的获取方式有两种:
直接将map转化称Set 迭代所有的key和value
直接使用collection视图来获取当前所有的value
list set map
list最为方便 set需要迭代器 map还需要转化
collection 和 collections
前一个是接口 后一个是实用类 实用类是专门对集合进行操作的
泛型
就是针对于引用类型再次添加上一个特殊的参数
泛型用的地方用的最多的是集合
提供了一个向上转型和向下转的安全机制
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
for (Integer a : list) {
System.out.println(a);
}
List<E> list = new ArrayList<E>();
实用了泛型就可以使用增强型for循环
不用再编写那么多的条件和初始化定义变量