
 
开篇
数组和集合对比
数组的不足:
1、长度开始时必须指定,而且一旦指定,不能修改,灵活性不够
2、保存的必须为同一类型的元素
3、使用数组进行增删元素的方法比较麻烦

集合
1、可以动态的保存任意多个对象
2、提供一系列操作对象的方法: add、remove、set、get等
3、使用集合添加、删除新元素更加方便。
集合的框架体系
集合主要有两组
单列集合
Collection 接口有两个重要的子接口,List 和 Set ,他们实现的子类都是单列集合

双列集合
Map接口的实现子类,是双列集合,存放形式为 K-V

Collection接口实现类的特点
1、Collection实现子类可以存放不同类型的元素,即每个类型都可以是Object
2、有些Collection的实现类,可以存放重复的元素,有些不可以
3、有些Collection的实现类,是有序的(List),而有些是无序的(Set)
4、Collection接口没有直接的实现子类,是通过他的子接口set和list来实现的。
常用方法

package com.zhang;
import java.util.ArrayList;
import java.util.List;
public class collection_ {
    public static void main(String[] args) {
        List list = new ArrayList();
        // 添加单个元素, 添加的每个元素都是包装类对象
        list.add("jack");
        list.add(10); // -> list.add(new Integer(10))  -> list.add(Integer.valueOf(10));
        list.add(true); // list.add(new Bol)
        System.out.println(list);
        System.out.println(list.get(2).getClass());
        // 删除指定的元素, 返回删除的对象
//        System.out.println(list.remove(0));  // 删除第一个元素, 按照下标删除
        //按照值删除,删除jack这个元素,
        // 如果存在,则删除对应元素,返回true
        // 如果有多个该元素,则默认删除第一个
        // 如果没有,则返回 false
        System.out.println(list.remove("sdjack"));
        System.out.println("删除元素"+ list);
        // contains 查找元素是否存在
        System.out.println(list.contains(true));  // T
        System.out.println("list是否包含数字10: " + list.contains(10));
        // size: 获取元素个数
        System.out.println("list集合元素个数: " + list.size());
        // isEmpty :  是否为空
        System.out.println("判断list集合是否为空: " + list.isEmpty());
        // clear: 清空
//        list.clear();
//        System.out.println("清空list集合: " + list);
        // 添加多个元素
        list.addAll(list);
        System.out.println("添加多个元素" + list);
        //判断多个元素是否存在,必须是全部存在,才返回true,否则返回false
        ArrayList arrayList = new ArrayList();
        arrayList.add("jack");
        arrayList.add(10);
        arrayList.add(23);
        System.out.println("判断多个元素是否存在" + list.containsAll(arrayList));
        System.out.println(list);
        // removeAll 一次性删除多个元素,哪个对象对应上,就删除哪个,而且是不论重复的个数,全部删除
        list.removeAll(arrayList);
        System.out.println("删除多个后的数据为:" + list);
    }
}
                

















