集合,集合是java中提供的一种容器,可以用来存储多个数据。
数组的长度是固定的。集合的长度是可变的。集合中存储的元素必须是引用类型数据
1.ArryList集合
ArrayList集合是程序中最常见的一种集合,它属于引用数据类型(类)。在ArrayList内部封装了一个长度可变的数组,当存入的元素超过数组长2 度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组。
集合的创建:
创建对象:与其他普通的引用数据类型创建方式完全相同,但是要指定容器中存储的数据类型:
ArrayList<要存储元素的数据类型> 变量名 = new ArrayList<要存储元素的数据类型>();
通过举几个例子,来明确集合的创建方式:
存储String类型的元素
ArrayList<String> list = new ArrayList<String>();
存储int类型的数据
ArrayList<Integer> list = new ArrayList<Integer>();
存储Phone类型的数据
ArrayList<Phone> list = new ArrayList<Phone>();
集合中几个常用的方法:
方法声明 | 功能描述 |
boolean add(Object obj) | 将指定元素obj追加到集合的末尾 |
Object get(int index) | 返回集合中指定位置上的元素 |
int size() | 返回集合中的元素个数 |
boolean add(int index, Object obj) | 将指定元素obj插入到集合中指定的位置 |
Object remove(int index) | 从集合中删除指定index处的元素,返回该元素 |
void clear() | 清空集合中所有元素 |
Object set(int index, Object obj) | 用指定元素obj替代集合中指定位置上的元素 |
集合的遍历
代码演示:
public static void main(String[] args) {
ArrayList<Person> list = new ArrayList<Person>();
list.add(new Person("小强"));
list.add(new Person("老王"));
list.add(new Person("小虎"));
list.add(new Person("小泽"));
list.add(new Person("小红"));
for(int i=0; i<list.size(); i++){
Person p = list.get(i);
System.out.println(p);
}
}
集合的继承实现关系
ArrayList类发现它继承了抽象类AbstractList同时实现接口List,而List接口又继承了Collection接口。Collection接口为最顶层集合接口了。
我们在使用ArrayList类时,该类已经把所有抽象方法进行了重写。那么,实现Collection接口的所有子类都会进行方法重写。
Collection接口常用的子接口有:List接口、Set接口
List接口常用的子类有:ArrayList类、LinkedList类
Set接口常用的子类有:HashSet类、LinkedHashSet类
2.collection接口
Collection接口是集合中的顶层接口,那么它中定义的所有功能子类都可以使用。
collection接口一些常用的方法(详细见API);
创建集合的格式:
方式1:Collection<元素类型> 变量名 = new ArrayList<元素类型>();
方式2:Collection 变量名 = new ArrayList();
Collection方法的一些代码演示:
//创建集合
Collection coll = new ArrayList();
//1,往集合中添加对象元素。add(E e)方法,E代表创建集合时所指定的数据类型如<String>,那么,E就代表String类型;创建集合时若没有指定数据类型,那么,E就代表Object类型。
coll.add("abc");
coll.add("ef");
coll.add("g");
//把集合打印一下。
System.out.println(coll); //打印结果为:[abc, ef, g]
System.out.println(coll.toString()); //打印结果为:[abc, ef, g]
//2,从集合中删除元素。remove(Object o)方法
coll.remove("ef");
//删除后,集合元素为[abc, g]
//3,判断集合中是否包含指定元素。contains(Object o)方法
System.out.println(coll.contains("abc"));
//打印结果为true
System.out.println(coll.contains("ef"));
//打印结果为false
//4,获取集合元素个数。size()方法
System.out.println(coll.size());
//打印结果为2
//5,返回包含集合中所有元素的数组。toArray()方法
String[] array = coll.toArray();
//数组中的元素为{"abc", "g"}
//6,清除集合元素。remove()方法
coll.clear();
//清空后,集合元素为[],代表没有元素