关于学习Java框架的一些小觉悟
集合框架
目前处于努力中,也是个偶然的机会去接触关于Java的课程挺有意思,最近算是给自己一个提升和补习Java基础的机会。 接下来列举我自己在这次学习集合框架遇到的以前理解的很模糊的点吧。
什么是集合?
可以看做一种容器。用来存储基本数据类型和对象,并且提供大量的操作元素的方法。
集合和数组的区别:
数组的长度是固定的。集合的长度是可变的。
数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。
数组要操作里面的元素,只能自己去写算法和逻辑,而集合提供了大量API。
什么是集合框架?
把很多的集合类型放在一起,就是集合框架。
集合框架分为了两个体系:Collection体系和Map体系;
区别:Collection的实现类里面都是放单个的元素,而Map的实现类里面放的都是键值对元素(key-value)。
Collection
Collection是集合的接口,区别于Collections,Collections是集合的工具类,操作集合的静态方法。
Collection下的List、Set
List是有序集合,可以存重复值,有时候需要对它去重,除了遍历,还可以利用Set的不重复特点,例如:
List list = new ArrayList();
list.add("aaaaa");
list.add("bbbbb");
list.add("ccccc");
list.add("aaaaa");
System.out.println(list);
list = new ArrayList(new TreeSet(list));
System.out.println(list);
输出:
[aaaaa, bbbbb, ccccc, aaaaa]
[aaaaa, bbbbb, ccccc]
Map
存键值对。
Map下的HashMap
HashMap是一个key唯一不重复且无序的容器,但是它的value是可以重复的,当key发生重复的话,就会导致value被覆盖。
HashMap<String,String> map = new HashMap<String,String>();
map.put("name", "张三");
map.put("name", "李四");
System.out.println(map);
输出:
{name=李四}
需要注意的
任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换。