概念:存储对象类型的一个整体,注意和数组不一样的地方是存储的都是对象
collection:最基本的集合接口,一个collection就代表一组object。
list 接口(有索引 元素可重复 有序的集合 添加的顺序和存储的顺序一样)
{
ArrayList:线程不安全可变的数组 更适合查找
LinkdList:链表 实现了双向操作 更适合增删改
}
set接口(无索引 元素不可重复 无序的集合 添加的顺序和存储的顺序不一样)
{
Hashset:不能保证元素的排列顺序,顺序有可能发生变化,可以放入null,但只能放入一个null
Treeset:Treeset中的数据是自动排好序的,不允许放入null值
}
map接口(“键值”对映射的抽象接口。该映射不包括重复的键,一个键对应一个值)
{
HashMap:适用于在Map中插入、删除和定位元素,
TreeMap:自然顺序或自定义顺序遍历键,
}
下面举简单例子分别说明下
list按添加顺序排列的(用ArrayList举例)
public class TestArrayList {
public static void main(String[] args) {
ArrayList al = new ArrayList();
al.add("赵老师");
al.add("钱老师");
al.add("孙老师");
al.add("李老师");
for (Object obj : al) {
System.out.println(obj);
}
}
}
HashSet(输出是无序的且只允许一个null)
public class TestHashSet {
public static void main(String[] args) {
HashSet hs = new HashSet();
hs.add("张学生");
hs.add("李学生");
hs.add("王学生");
hs.add("赵学生");
hs.add(null);
hs.add(null);
System.out.println(hs);
}
}
TreeSet
public class TestTreeSet {
public static void main(String[] args) {
TreeSet ts = new TreeSet();
ts.add("张三");
ts.add("李四");
ts.add("王五");
ts.add("赵六");
System.out.println(ts);
}
}
看放入null
HashMap举例
public class TestHashMap {
public static void main(String[] args) {
HashMap hm = new HashMap();
hm.put(3, "张三");
hm.put(1, "李四");
hm.put(4, "王五");
hm.put(2, "赵六");
System.out.println(hm);
}
}
collection集合的简单解释就是这么多了,欢迎各路大神指正。