JavaSE进阶(集合泛型)

2023-08-11  本文已影响0人  扶光_

一,集合

张三 李四
张三 北京
李四 上海
Collcetion集合

集合和类型都只支持引用类型数据,不支持基本数据类型
如果要存储基本类型数据,就要用包装类
Collection<Integer> list = new ArrayList<>();

二,Collection集合的常用API

1 迭代器Iterator

是集合专用的遍历方式
Iterator<String> it =list.Iterator;
String ele = it.next();
sout(ele)//只能输出一个 要想全部遍历需要循环

while(it.hasNext())//询问有没有这个元素
{
    String ele = it.next();
    system.out.println(ele);
}

2 foreach遍历

既可以遍历集合也可以遍历数组
内部原理是迭代器,遍历集合相当于迭代器简化写法
实现Iterator接口的类才可以实现,Collection接口已实现

Collection<String> c = new ArrayList<>();
for(String ele:list){
    system.out.println(ele);
  }

3 lambda表达式遍历

list.forEach(s->{
system.out.println(s);
})

三,集合存储自定义类型的对象

如存储一些学生对象,老师对象,动物对象..
Collection<Student> student = new ArrayList<>();

四,常见的数据结构

数据结构是计算机底层存储,组织数据的格式.指数据相互之间是以什么方式排列在一起的。

先进后出,如弹夹存储子弹

队列

就是排队 ,先进先出

数组(查询快,增删慢)

根据索引查询速度快
删除效率低,因为数组后面的元素需要前移
添加效率低

链表

内存中不连续存储的,每个元素节点包含数据值和下一个元素的地址
查询慢 因为无论查询那个数据都要从第一个开始
增删快

二叉树

平衡二叉树

在满足查找二叉树的规则小,尽可能让树变得矮小,提高查数据性能

红黑树

通过红黑规则来实现的

四,List集合(ArrayList,LinkdList)

List <String> list = new ArrayList<>();
在某个索引位置插入元素
list.add(2,"18");
//删除某个位置元素
list.remove(2);
//根据索引获取元素
String rs = list.get(2);
//修改索引位置的元素
list.set(1,"修改的值");

list遍历集合的四种方式

LinkedList集合特有功能

LinkedList<String> queue = new LinkedList<>();
//入队
queue.addLast("1");
//出队
queue.removeFirst();

入栈push()
出栈pop()

并发修改异常

从集合中的一批元素中找出某些数据并删除,如何操作,是否存在问题
解决:需要边遍历边删除会出现异常问题

用迭代器进行遍历删除时,用it,remove()删除,
用集合list.remove(ele);会出毛病

for循环删除必须从后面遍历元素才可以

五,泛型

泛型类

格式:修饰符class 类名<泛型变量>{}

public class ArrayList<T>{} //E T K V
上一篇下一篇

猜你喜欢

热点阅读