一、Java中的集合可以分为两个体系:Collection接口、Map接口
1.Collecteion接口:单列数据,定义了存储一组对象的方法的集合
- List : 元素有序、可重复的集合
- Set : 元素无序、不可重复的集合
2.Map接口:双列数据,存储具有映射关系“key-value”的集合(键值对)
二、Collection中的抽象方法
-
add(Object o) 添加元素。 o是任何类型的数据都可以
-
size() 返回值为集合的长度
-
addAll(Collection c) 将集合c中的元素添加到其中
-
isEmpty() 判断集合的size是否为0
-
clear() 清空集合中的数据
-
contains(Object o) 判断当前的集合中是否包含o这个元素(如果参数是实例对象,
那么除了重写过equals的String比较的是内容;String之外对的其他类比较的是地址值,除非重写equals())。o是任何类型的数据都可以 -
containsAll(Collection c) 判断c集合中的元素是否都在当前集合中
-
remove(int index) 移除当前集合中索引为index的元素(如果参数是实例对象,
那么除了重写过equals的String比较的是内容;String之外对的其他类比较的是地址值,除非重写equals()) -
removeAll(Collection c) 移除当前集合中的集合
-
retainAll(Collection c) 移除当前一盒中与集合c不相同的元素(相当于取交集)
-
equals(Collection c) 比较当前集合与集合c是否相等。因为是有序,所以顺序也要相同
-
hashcode() 返回当前集合的哈希值
-
toArray() 将当前的集合——>数组,使用Object[] arr类型的数组接收
-
拓展:Arrays.asList(Object arr[])
将数组——>集合,最好使用包装类(Integer…)对象的数组,注意要用List<包装类>/Collection的集合接收 -
iterator() 返回Iterator接口的实例,用于遍历集合的元素。
1.Iterator iterator = 集合对象.iterator();
2.iterator.next() 每次从集合中取出一个元素(返回值)
3.iterator.hasNext() 判断集合中的元素是否都被iterator.next()取过
4.所以遍历时,通过iterator.hasNext()判断,通过iterator.next()打印
代码举例:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;;
public class Related_API {
public static void main(String[] args) {
ArrayList aList = new ArrayList();
//Arrays.asList(Object arr[]) 将数组——>集合,
List<Integer> test = Arrays.asList(new Integer[]{1,2,3});
//add(Object o) 添加元素。 o是任何类型的数据都可以
aList.add(123);
aList.add("hello,world");
aList.add(new Person("寒江孤影一线白", 108));
//addAll(Collection c) 将集合c中的元素添加到其中
aList.addAll(test);
System.out.println("aList:"+aList+"\n");
//size() 返回值为集合的长度
System.out.println("集合的长度:"+aList.size()+"\n");
//contains(Object o) 判断当前的集合中是否包含o这个元素(如果参数是实例对象,
System.out.println("集合中是否包含123:"+aList.contains(123)+"\n");
//remove(Object o) 移除当前集合中的o
aList.remove(1);
System.out.println("remove(1)后的集合:"+aList+"\n");
//isEmpty() 判断集合的size是否为0
System.out.println("集合是否为空:"+aList.isEmpty()+"\n");
//clear() 清空集合中的数据
aList.clear();
System.out.println("clear()后,集合的元素个数:"+aList.size()+"\n");
}
}
class Person {
String name;
int age;
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
}