集合
  • 种类:
  1. ArrayList集合类(数据可重复、有序)
  2. Vector集合类(数据可重复、有序)
  3. LinkedList集合类(新增2种添加方法 (addFirst()、addLast()))
  4. HashSet集合类(不会添加重复数据、无序)
  5. TreeSet集合类
ArrayList 集合类
  • 集合:相当于一个容器,用来放置任意类型的数据
  • 基本语法
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    ArrayList ar = new ArrayList();//创建集合类对象

    ar.add("Hello World!");//把数据放进ar集合内

    System.out.println(ar.get(0));//获得ar集合内的数据(get(0)是一个索引,从0开始)

    ar.add(0,"小明");//在0位置添加一条信息

    ar.addAll(ar2);//把ar2集合类添加到ar集合类里

    ar.addAll(0,ar2);//也可以把ar2集合类放到指定的地方

    ar.remove(0);//删去集合类中指定位置的数据

    for (Object o : ar){
    System.out.println(o);
    }//增强版for循环遍历ArrayList集合(重要)
  • 可以添加重复的数据

Vector集合类
  • 基本语法
    1
    2
    3
    4
    5
    6
    7
    Vector ve = new Vector();//创建一个Vector集合类

    ve.add("你好!");//在Vector集合类中添加信息

    for(Object o : ve){
    System.out.println(o+" ");//增强版循环遍历Vector集合类
    }
  • 可以添加重复的数据

ArrayList集合类和Vector集合类区别
  • 线程是否安全(ArrayList线程不安全,Vector线程安全)

  • 建议:
    单线程中用ArratList,但效率很高
    多线程中使用Vector,但效率较低


HashSet集合类
  • 它的存储是无序的,没有get方法
  • 不会添加重复的数据
  • 哈希值

TreeSet集合类
  • 它的存储是无序的,没有get方法
  • 不会添加重复的数据

Map(用来存储键值对)
  • HashMap(线程不安全,效率高)
  • TreeMap
  • HashTable(线程安全,效率低)

泛型
1
2
ArrayList<Integer> l1 = new ArrayList<Integer>();
//限定了l1中的数据类型只能是整型
  • 优点
    1.使用泛型能够限定集合中,如List, Set中元素的类型,保证一个集合中只有一个类型。(这样也就能够使用增强for来遍历集合)
    2.程序也能更加健壮(只要在编译时期没有出现警告,那么运行时期就不会出现ClassCastException异常)