上篇博客主要讲了容器的总接口Collection,这篇博客要介绍一下实现Collection接口的子接口:Set、List、Map。
Set接口
Set接口是Collection的子接口,Set接口没有提供额外的方法,但实现Set接口的容器类中的元素是无序的,而且不可以重复。
J2SDK API中提供的Set容器有HashSet,TreeSet等。
List接口
也为Collection的子接口,实现List接口的容器类中的元素是有序的,而且可以重复。List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的所有元素。
J2SDK API中提供的List容器有ArrayList,LinkedList等。
Map接口
实现Map接口的类用来存取键——值对。
Map接口中存储的键——值对通过键来标识,所以键不能重复。
import java.util.*;
public class Main {
public static void main(String[] args) {
Map m1=new HashMap();
Map m2=new TreeMap();
m1.put("one", new Integer(1));
m1.put("two", new Integer(2));
m1.put("three", new Integer(3));
m2.put("A",new Integer(1));
m2.put("B", new Integer(2));
System.out.println(m1.size());
System.out.println(m1.containsKey("one"));
System.out.println(m2.containsValue(new Integer(1)));
if(m1.containsKey("two")){
int i =((Integer)m1.get("two")).intValue();
System.out.println(i);
}
Map m3=new HashMap(m1);
m3.putAll(m2);//合并两个map
System.out.println(m3);
}
}
输出结果:
在合适的时机可以自动的打包和解包(JDK1.5后被支持)。
1.自动将基础类型转换为对象
2.自动将对象转换为基础类型
如何选择数据结构呢?
- ArrayList读快改慢
- LinkedList改快读慢
- Hash介于两者之间
总结
List:元素放入有序,可重复
Set:元素放入无序,不可重复
Map:元素按键值对放入 ,无序