集合框架的作用:存储数据
集合框架中的2个顶层接口:Collection Map
Collection接口一次只能存储一个值
Map集合接口一次能存储2个值
由于Collection是接口,不能实例化,只能借助子类
Collection接口下有3个子接口:List Set queue
List接口:有序,可重复
Set接口:无序,唯一
ArrayList专用于查询操作
LinkedList:专用于增加,删除,修改
Vector:用于swing(窗体)中的数据处理。-线程是安全的。
Set接口下的子实现类 :HashSet|TreeSet
长度
//利用ArrayList集合类创建一个容器存储数据
ArrayList list = new ArrayList();
//1.获取集合长度
System.out.println(list.size());
添加数据
list.add(1);//转成Integer类型
list.add(true);
list.add(true);
list.add("刘凯峰");
//创建一个学生
Student stu = new Student("谢文建","女");
list.add(stu);
System.out.println(list.size());
查看数据
//查看数据:get 根据下标获取值 从0开始
System.out.println(list.get(1));
删除|移除
list.remove(stu);//根据元素值删除
System.out.println(list.size());
list.remove(0);//根据下标删除
System.out.println(list.size());
清空
// clear 清空集合中所有的数据
list.clear();
System.out.println(list.size());
是否包含
//contians
System.out.println(list.contains("sb"));
判断是否为空
//判断集合是否为空 isEmpty
System.out.println(list.isEmpty());
集合的遍历方式
ArrayList list = new ArrayList();
list.add(1);//转成Integer类型
list.add(true);
list.add(true);
list.add("刘凯峰");
//1.for
for(int i = 0;i<list.size();i++) {
System.out.println(list.get(i));
}
System.out.println("-----");
//2.foreach
for(Object obj : list) {
System.out.println(obj);
}
//3.迭代器----集合框架中遍历元素的最常用的一种方式。
// 调用方法将集合中的数据存放到迭代器容器中,通过迭代器容器提供特有的遍历方式。
Iterator its = list.iterator();
while(its.hasNext()) {//its.hasNext() 如果迭代器容器中存在下一条数据
//直接输出这条数据
//获取当前的下一条数据 next();
System.out.println(its.next());
集合框架的泛型使用
1.集合存储数据任何类型都可以(Object)
2.泛型目的:约束集合只能存储一种类型的数据
3.定义泛型在创建集合框架时进行定义
比如规定ArrayList存储数据时只能存储字符串
方法
ArrayList<String> list = new ArrayList<String>();
ArrayList<Student> list = new ArrayList<Student>();
.通过泛型定义集合 并且实现多态
List<String> list = new ArrayList<String>();
//list.add(1);//错误的 只能存储字符串类型的数据
list.add("中国");
list.add("-_-");
自定义泛型
//创建一个学生类(某种情况下 学号:int)(某种情况下 学号:String)
Stu<String> stu = new Stu<String>();
stu.sid = "111";
//Set 无序 唯一
Set set = new HashSet();
set.add("123");
set.add("123");
set.add("sb");
set.add("sb2");
set.add("nb");
set.add("123");
set.add("123");
System.out.println(set.size());
for (Object object : set) {
System.out.println(object);
}