java集合
java集合类存放于java.util,用于存放对象的容器。
- 集合中只能存放对象,例如一个int类型对应的对象类是Interger。
- 集合存放的是多个对象的引用,对象的本身还是在堆内存中。
- 可以存放不同类型,不限数量的数据类型。
分为 无序不重复的集合(Set),有序可重复的集合(List),具有映射关系(Map)
ps:jdk5后加入记住容器对象的泛型(规定集合中存的对象的类型)。
HashSet
Set的典型,常用的Set集合。
性质:无序、不可重复、不是线程安全的、集合元素可以用Null。
存入元素用hashcode方法得到的hashcode值,来决定他的存储位置。
添加方法 | 用途 |
---|---|
add(Object o) | 指定元素的添加 |
addAll | 指定集合中全部元素的添加 |
删除方法 | 用途 |
---|---|
remove(Object o) | 指定元素的删除 |
removeAll(Collection c) | 两个集合的交集的输出 |
retainAll(Collection c) | 两个集合的交集的保留 |
clear() | 清空整个集合 |
查询方法 | 用途 |
---|---|
size() | 集合元素个数 |
toArray() | 将集合的元素转换成Object类型数组 |
判断方法 | 用途 |
---|---|
isEmpty() | 集合是否为空 |
equals(Object o) | 集合是否与指定元素相同 |
contains(Object o) | 集合是否包含指定元素 |
containsAll(Collection c) | 集合是否包含指定集合 |
定义一个HashSet集合:
Set set1 = new HashSet();
Set set2 = new HashSet();
Collection接口方法的使用方法:
set1.add(1); //添加一个整形元素
set1.add("a"); //添加一个字符型元素
set1.addAll(set2); //将set2中的元素添加到set1
set1.addAll(null); // 集合中元素可以为空
set1.remove("a"); //删除”a“这个元素
set1.clear(); //清空set1
System.out.println(set1); //直接输出set1
System.out.println(set1.contains("a")); //输出set1中是否含有"a";
System.out.println(set1.contains(set1.size())); //输出集合的元素个数
集合遍历:
1.迭代器:
Iterator it = set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
2.for each迭代:
for(Object obj:set){
System.out.println(obj);
}
泛型
指定集合中元素的类型
Set<String> set3 = new HashSet<String>();
//这样定义set3中的元素必须是String类型
Set<Object> set4 = new HashSet<Object>();
//Object是所有类的父类,这样的定义可以将任何类型存入