util包中的集合框架

 
*为什么需要集合框架?
    因为数组的长度固定 所以不适合用于新增对象的时候
*什么时候使用?
    在你不确定数据量有多少的时候
*集合框架是什么?
    动态数组

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

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

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

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

 注意:Collection是接口,使用不能实例化,但是可以借助子类Collection接口下有三个子接口:List,Set,queue

①List 接口:有序,可以重复

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

ArrayList:专用于查询操作。

LinkedList:专用于增删改

ArrayList   有序的

LinkedList   

Vector:用于swing(窗体)中的数据处理。线程也是安全的。

②Set 接口:无序,但是唯一

Set 接口下子类实现类:HashSet | TreeSet

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

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

//包罗万象  杂乱无章

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

2.其他介绍方法功能

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));//调用包含方法:是判断名字是否有相同

3.方法整理

  size()  长度
  add()   添加
  get()    获取
  remove() 移除
  clear()    清空
  isEmpty    是否为空
  contains  是否包含
————————————————
版权声明:本文为CSDN博主「 ᯤ⁹ᴳ⁺⁵²º⋆এ」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_62898618/article/details/121666211

  • 集合框架遍历方式

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

4.通过泛型定义集合  并且实现多态,如下所示:

//给类创键一个任意属性的方法
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);
	}

public class Stu<T> {
    T sid;
    String sname;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值