集合是非常重要的类型,和数组一样都是存数据的容器,但不同的是:它不固定大小可动态扩展存取灵活存放类型多样等
集合框架有collection和map两大接口,Collection是传统集合接口,存储单个对象,Map是映射接口,存储键值对。
集合类继承关系为
Collection
├List (有序集合,允许相同元素和null)
│├LinkedList (非同步,允许相同元素和null,遍历效率低插入和删除效率高)
│├ArrayList (非同步,允许相同元素和null,实现了动态大小的数组,遍历效率高,用的多)
│└Vector(同步,允许相同元素和null,效率低)
│ └Stack(继承自Vector,实现一个后进先出的堆栈)
└Set (无序集合,不允许相同元素,最多有一个null元素
│ ├HashSet(无序集合,不允许相同元素,最多有一个null元素)
│ └TreeSet
└Queue
├ArrayBlockingQueue
Map (没有实现collection接口,key不能重复,value可以重复,一个key映射一个value)
├Hashtable (实现Map接口,同步,不允许null作为key和value,用自定义的类当作key的话要复写hashCode和eques方法,)
├HashMap (实现Map接口,非同步,允许null作为key和value,用的多)
├TreeMap
└Properties
集合框架中接口和类都是泛型类及泛型接口,可以使用jdk5.0以上的增强for循环迭代,java8为Collection
的父接口(Iterable
)提供了一个默认的Foreach
方法,我们可以使用它进行集合遍历
Collections是集合类型的工具类,定义大量静态方法,其中toArray(T[] a)方法可将集合转化为数组
记录::字符串转化为字节数组实质是转化该字符串的某种字节编码