util 包中的集合框架

回顾Java存储数据的方式有哪些? 


         1.Java变量 一次只能存储一个数据 
          2.数组----一次可以存储多个同类型的数据
          3.oop对象---可以保存多个不同类型的数据 
          4.对象数组---可以存储多个同类型的对象,而每个对象可以存储多个不同的属性。


         集合框架的作用:存储数据


        集合框架中的2个顶层接口:Collection Map
        Collection接口一次只能存储一个值
         Map集合接口一次能存储2个值

         由于Collection是接口,不能实例化,只能借助子类
        Collection接口下有3个子接口:List Set queue

1.List 接口:有序,可重复的

2.Set 接口 :无序,唯一

 List 接口下子类实现类:ArrayList | LinkedList | Vector

ArrayList:专用于查询操作。
        LinkedList:专用于增加,删除,修改
        Vector:用于swing(窗体)中的数据处理。-线程是安全的。

Ser 接口下的子类:HashSet | TreeSet

ArrayList 有序的

LinkedList 杂乱无序的

创键 一个学生类  给定 name 与 age  添加数据

 add 方法 添加方法 !!

需求:创建一个集合对象存储数据了
		//利用ArrayList集合类创建一个容器存储数据
		ArrayList list = new ArrayList();
		//常用的方法
		//1.获取集合长度
		System.out.println(list.size());
		//2.添加数据
		list.add(1);//转成Integer类型
		list.add(true);
		list.add(true);
		list.add("刘峰");
		//创建一个学生
		Student stu = new Student("谢文建","女");
		list.add(stu);
		System.out.println(list.size());

注意事项:存放的永远都是引用类型的数据。
因为如果存储的是基本类型,在添加进去之前会自动将基本类型的数据自动转成其所对应的封装类的类型


     介绍方法功能

        ArrayList list = new ArrayList();
        查看数据:get  根据下标获取值  从0开始
		System.out.println(list.get(1));
		
		//删除|移除remove
		list.remove(stu);//根据元素值删除
		
		System.out.println(list.size());
		
		list.remove(0);//根据下标删除
		System.out.println(list.size());
		
		// clear  清空集合中所有的数据
		list.clear();
		System.out.println(list.size());
		
		list.add("sb");
		//判断集合是否为空   isEmpty
		System.out.println(list.isEmpty());
		
		//contians 包含 判断框架中是否包含某属性
		System.out.println(list.contains("sb"));

使用包含 ,查询 类中属性必须重写equals方法

查询案例

ArrayList list = new ArrayList();
		list.add(new Student("张三1", "男"));
		list.add(new Student("张三2", "男"));
		list.add(new Student("张三3", "男"));
		list.add(new Student("张三4", "男"));
		
		Student student = new Student("张三4", "男");
		System.out.println(list.contains(student));调用包含方法 判读 名字是否有相同

方法整理 !!

 size()  长度
          add()   添加
         get()    获取
          remove() 移除
          clear()    清空
          isEmpty    是否为空
          contains  是否包含

集合框架遍历方式

集合的遍历方式
		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("-----");

		//foreach 循环
		for(Object obj : list) {
			System.out.println(obj);
		}

		迭代器----集合框架中遍历元素的最常用的一种方式。

		 调用方法将集合中的数据存放到迭代器容器中,通过迭代器容器提供特有的遍历方式。

		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>();

2.通过泛型定义集合  并且实现多态

演示 给类创键一个任意属性的方法 !! 

package com.zking.test;

public class Stu<T> {
	T sid;这个属性将来调用者 输入什么属性他就是什么类型

	String sname;
}

演示二 给 ArrayList集合框架约束只能存储String类型数据

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);
		}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值