Java容器剖析:Set、List、Map接口--【J2SE】

  
  上篇博客主要讲了容器的总接口Collection,这篇博客要介绍一下实现Collection接口的子接口:Set、List、Map。
  
  Java容器剖析:Set、List、Map接口--【J2SE】_第1张图片
  

Set接口

  Set接口是Collection的子接口,Set接口没有提供额外的方法,但实现Set接口的容器类中的元素是无序的,而且不可以重复。
  J2SDK API中提供的Set容器有HashSet,TreeSet等。
Java容器剖析:Set、List、Map接口--【J2SE】_第2张图片
  

List接口

  也为Collection的子接口,实现List接口的容器类中的元素是有序的,而且可以重复。List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的所有元素。
  J2SDK API中提供的List容器有ArrayList,LinkedList等。
Java容器剖析:Set、List、Map接口--【J2SE】_第3张图片
Java容器剖析:Set、List、Map接口--【J2SE】_第4张图片
  

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);



        }   
    }

输出结果:

Java容器剖析:Set、List、Map接口--【J2SE】_第5张图片

在合适的时机可以自动的打包和解包(JDK1.5后被支持)。
1.自动将基础类型转换为对象
2.自动将对象转换为基础类型

Java容器剖析:Set、List、Map接口--【J2SE】_第6张图片

如何选择数据结构呢?

  1. ArrayList读快改慢
  2. LinkedList改快读慢
  3. Hash介于两者之间

总结

List:元素放入有序,可重复
Set:元素放入无序,不可重复
Map:元素按键值对放入 ,无序

你可能感兴趣的:(java,list,set,map,容器)