概述
集合可以看作是一个容器。对于集合中的各个对象可以很容易将其存放到集合中,也很容易从集合中取出来,还可以按照一定的顺序进行摆放。Java中提供了不同的集合类,这些集合类具有不同的存储对象方式,并提供了相应的方法对集合类进行遍历、添加、删除以及查找指定对象。Java的java.util包中提供了一些集合类,常用的集合有List集合、Set集合、Map集合。
List接口
----List是列表类型,包含Collection中的所有方法。
常用方法:
List集合以线性方式存储对象,因此可以通过对象的索引来操作对象。
List集合中可以包含重复的对象。
实现类:
List接口的实现类常用的有ArrayList和LinkedList。
1、ArrayList类:
该类实现了可变的数组,允许所有元素,包括Null。可以根据索引位置对集合进行快速的随机访问。缺点是向指定的索引位置插入对象或删除对象的速度较慢。
List<String> list = new ArrayList<String>();
2、LinkedList类:
采用链表结构保持对象。优点是便于向集合中插入和删除对象,缺点是随机访问集合中的对象效率较慢。
List<String> list = new LinkedList<String>();
例如:
public class Gather{
public static void main(String[] args){
List list = new ArrayList(); //创建集合对象
list.add("a"); //向集合中添加元素
list.add("b");
list.add("c"); //索引为2
list.remove(2); //将索引是2的元素移除
}
}
Set接口
常用方法:
Set接口中不允许存在重复值。
实现类:
Set接口的实现类常用的有HashSet和TreeSet类。
Set<String> collSet = new HashSet<String>();
Set<String> collSet2 = new TreeSet<String>();
例如:
public class People{
private String name;
public People(String name){
this.name = name;
}
}
public class SetDemo{
public static void main(String[] args){
Set<People> hashSet = new HashSet<People>(); //创建Set集合对象
hashSet.add(new People("Jon")); //添加对象
hashSet.add(new People("Peter"));
}
}
Map接口
----Map接口提供了将键映射到值的对象。一个映射不能包含重复的键,每个键最多只能映射一个值。
常用方法:
Map中的元素是通过key、value进行存储的,要获取集合中指定的key或者value值,需要先通过相应的方法获取key集合或value集合,再遍历key集合或value集合获取指定值。
实现类:
Map接口常用的实现类有HashMap和TreeMap。通常建议使用HashMap实现类实现Map集合。