集合:集合是java中提供的一种容器,可以用来存储多个数据。

集合和数组既然都是容器,它们有什么区别呢?

  • 数组的长度是固定的。集合的长度是可变的。
  • 数组中存储的是同一类型的元素,可以存储任意类型数据。集合存储的都是引用数据类型。如果想存储基本类型数据需要存储对应的包装类型。

集合常用类的继承体系

Collection:单列集合
    ---List:有序、可重复
        ---ArrayList
        ---LinkedList
        ---Vector
            ---Stack
    ---Set:无序、不可重复
       ---HashSet
          ---LinkedHashSet
       ---SortedSet
          ---TreeSet

Map:双列集合(key - value)
    ---HashMap:线程不安全、key和value可以为null
        ---LinkedHashMap
    ---SortedMap
        ---TreeMap
    ---Hashtable:线程安全、key和value不能为null
        ---Properties

Collection集合的遍历方式:

  • 迭代器。
    • foreach(增强for循环)
    • JDK 1.8开始的新技术Lambda表达式。
public static void main(String[] args) {

        Set<String> set = new HashSet();
        // String[] strs = set.toArray(String[]::new);

        set.add("李小龙");
        set.add("霍元甲");
        set.add("叶问");
        set.add("成龙");
        set.add("陈真");

        // 1.使用Lambda表达式遍历集合
        set.forEach(str -> {
            System.out.println(str);
        });

        // set.forEach(str -> System.out.println(str));
        // set.forEach(System.out::println);

        System.out.println("------------------------------");

        // 2.使用Iterator遍历集合元素
        Iterator<String> it = set.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }

        System.out.println("------------------------------");

        // 3.使用增强for循环遍历
        for(String str:set){
            System.out.println(str);
        }



    }

Collection类常用方法:

  • public boolean add(E e): 把给定的对象添加到当前集合中 。
  • public void clear() :清空集合中所有的元素。
  • public boolean remove(E e): 把给定的对象在当前集合中删除。
  • public boolean contains(Object obj): 判断当前集合中是否包含给定的对象。
  • public boolean isEmpty(): 判断当前集合是否为空。
  • public int size(): 返回集合中元素的个数。
  • public Object[] toArray(): 把集合中的元素,存储到数组中