开篇
数组和集合对比
数组的不足:
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// 如果有多个该元素,则默认删除第一个// 如果没有,则返回 falseSystem.out.println(list.remove("sdjack"));System.out.println("删除元素"+ list);// contains 查找元素是否存在System.out.println(list.contains(true)); // TSystem.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,否则返回falseArrayList 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);}
}