集合概念与使用List集合

集合
目标
1、数组和集合
2、集合框架
3、Collection集合
4、List集合

1、数组和集合

共同点:都是用来存放数据的容器;
(1)数组的特点
缺点:数组的长度是固定的
每个元素都可以是一个字符
(2)集合的特点
集合的长度可以改变,可以增加和删除元素。
每个元素都是引用数据类型(基本数据类型可以转换为包装类对象)。

2、集合框架

在这里插入图片描述

(1)集合分类
Collection和Map
Collection:list和set集合
集合api在java.util包下

3、Collection集合

(1)Collection接口
(2)不能实例化
(3)抽象方法

int size() 返回此集合中的元素数。 boolean add(E e) 确保此集合包含指定的元素(可选操作)。
boolean remove(Object o) 从该集合中删除指定元素的单个实例(如果存在)(可选操作)。 void clear()
从此集合中删除所有元素(可选操作)。 boolean isEmpty() 如果此集合不包含元素,则返回 true 。
boolean contains(Object o) 如果此集合包含指定的元素,则返回 true 。
Iterator iterator() 返回此集合中的元素的迭代器。

4、list集合

(1)List集合
(2)继承了Collection接口
(3)不能实例化
(4)抽象方法:继承了Collection接口的抽象方法
(5)特点:有序的集合,可以存储重复的元素。
扩展的方法

E get(int index) 返回此列表中指定位置的元素。
E set(int index, E element) 用指定的元素(可选操作)替换此列表中指定位置的元素。
E remove(int index) 删除该列表中指定位置的元素(可选操作)。
int indexOf(Object o) 返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。
int lastIndexOf(Object o) 返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1。
List subList(int fromIndex, int toIndex) 返回此列表中指定的 fromIndex (含)和toIndex之间的视图。

5、常用的实现类

ArrayList、Vecto、Linkdelist

区别:
ArrayList和Vector,采用的是数字结构存储数据,查询和修改速度快,删除和插入比较慢。
LinkedList,采用的是链表结构存储数据,查询和修改速度慢,删除和插入比较快。
ArrayList是线程不安全,速度快。Vector是线程安全的,速度慢

6、ArrayList

ArrayList的使用

//		创建一个集合对象
		ArrayList  list=new  ArrayList();
//		获取集合的元素个数,即长度。
		System.out.println(list.size());
//		判断是否是集合
		System.out.println(list.isEmpty());
		
//		添加元素
		list.add(97);
		list.add(94);
		list.add(93);
		list.add(90);
		list.add(94);
		list.add(94);
		
//		获取集合的元素个数,即长度。
		System.out.println(list.size());
//		判断是否是集合
		System.out.println(list.isEmpty());
		
//		删除元素
//		list.remove(4);//根据下标删除
		list.remove(new  Integer(94));//根据元素删除
//		获取集合的元素个数,即长度。
		System.out.println(list.size());
		
//		清空集合
//		list.clear();
//		获取集合的元素个数,即长度。
//		System.out.println(list.size());
		
//		是否包含指定的元素
		boolean  bl=list.contains(95);
		System.out.println(bl);
		
//		获取指定的元素
		Object   o1=list.get(1);
		System.out.println(o1);
		
//		修改指定的元素
		list.set(1, 100);
		Object   o11=list.get(1);
		System.out.println(o11);
		
//		获取指定元素第一次出现的下标
		int  index1=list.indexOf(94);
		System.out.println(index1);
		
//		获取指定元素最后一次出现的下标
		int  index2=list.lastIndexOf(94);
		System.out.println(index2);
		
//		截取子集合
		List   list2=list.subList(1, 4);
		System.out.println(list2.size());	

List集合的遍历:4种方式

//		List集合遍历:4种方式
		List   list=new  ArrayList();
		list.add("aa");
		list.add("bb");
		list.add("cc");
		list.add("aa");
		list.add("dd");
		System.out.println(list.size());
				
//		方式1:for i
//		for (int i = 0; i < list.size(); i++) {
//			Object  e=list.get(i);
//			System.out.println(e);
//		}
		
//		方式2:增强for
//		for(Object  e:list) {
//			System.out.println(e);
//		}
		
//		方式3:迭代器
//		通过集合对象获取对应的迭代器
		Iterator  it=list.iterator();
//		通过迭代器遍历集合
//		判断是否有下一个
//		while(it.hasNext()) {
			取出下一个
//			Object  e=it.next();
//			System.out.println(e);
//		}
		
//		方式4:forEach,jdk1.8开始支持的新语法,箭头函数
		int  a=10;
		list.forEach((e)->{
			System.out.println(e);
			int  c=a;
			System.out.println(c);
			c=18;
		});
		
//		a=18;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值