Java 容器类 - 常用概念及常用方法介绍,实现原理以后分析:
 1、数组是存储相同类型的长度固定的数据,通过下标操作符来使用。
 2、容器是存储数据的另一种方式,可以动态存放多个对象,底层实现涉及大量数据结构和算法的内容,所以原理部分以后再详细分析。
 
 Java 容器类框架
 如图: 参考附件
 
 容器常用接口:
 1、Collection:定义了存取对象的方法,它有两个常用子接口
     List接口:存放的元素有序且允许元素有重复
     Set 接口:存放的元素无序且不允许重复
 2、Map 接口:定义了存储键值对的方法
 
 List 的一些基本特性:
 有序性:指的是元素的存入顺序和取出顺序一致,每个元素对应一个index。
 重复性:指的是equals 方法比较后的结果相等。
 常用方法:
 add(object)
 add(index,object)
 get(index)
 remove(index)
 indexOf(object)
 size(); 获取容器元素个数
 iterator(); 不同的List 实现类会有不同的Ite内部类。从而实现对容器内元素的遍历操作
 
 List 接口具体实现类
 ArrayList:内部存储采用数组结构实现的List容器
 LinkedList:内存存储采用双向链表结构实现的List容器。
 
 Set 的一些基本特性
 无序性:不保证元素的存入顺序和取出顺序一致。
 重复性:两个对象通过equials 方法比较后相等。
 
 Set接口的具体实现类:
 HashSet:根据哈希码进行存放,存放元素无序、不重复
 LinkedHashSet:存放元素有序
 TreeSet:采用树形链表存储
 对于存放到Set容器中的自定义对象,应该根据情况重写equals和hashcode方法,以提高hashtable性能。
 在Set中添加一个新的对象时,会先检查他的hashcode,如果hashcode 不相等则认为是不同的元素,
 hashcode相等时,会再根据equals 方法比较相等的元素,相等的话则认为是重复的元素,不再添加,不相等则把元素添加到对应hashcode的桶(数据块)中。
 
 Map相关内容:
 以键值对的方式来进行存储。
 HashMap:内部“键”从用Set存放,不能重复。
 TreeMap、HashTable
 
 put(key,value)
 get(key)
 remove(key)
 containKey(key)
 containValue(value)
 keySet(); // 返回此map 中所有键的Set
 
 

 Iterator 迭代器:
 所有实现了Collection接口的容器类都有一个iterator()方法,用以返回一个实现了Iterator接口的对象
 可以方便地实现对容器内元素的遍历操作。
 hasNext(); 是否有下一个元素
 next(); 返回下一个元素。
 
 容器中的泛型:
 泛型的概念源自于模板,编译器会根据传入的类型参数生成特定类型的类。
 java中就是保存特定类型对象的容器类。在指定类型时,默认是Object类型