4.21笔记列表,栈,队列。
正在上传…重新上传取消魏吉宇2023-04-22 11:29:59
定义列表
定义列表时,如果指定列表接受的数据类型为8大数据类型,需要使用对应数据类型的包装类;列表是一个可变容器,定义后默认元素为空。
//创建一个list
List<String> animallist = new ArrayList<>();
//创建一个ArrayList,接受数据类型为String
ArrayList <String> arlist = new ArrayList <String>();
//创建一个ArrayList,接受数据类型为Int
ArrayList <Integer> brlist = new ArrayList <Integer>();
增,删,改,查。
(增)新增主要使用add方法,默认在尾部添加,也可以在指定位置添加,addAll方法可以添加整个集合到列表。
//默认尾部添加
list.add();
list.add();
list.add();
//在指定位置添加
list.add(,);
list.add(,);
list.add(,);
ArrayList <String> arlist = new ArrayList <String>();
//将list中的元素添加到arlist
arlist.addAll(list);
(删)列表中的元素,可以使用remove方法根据下标删除,也可以根据值删除,如果有多个重复的值,默认删第一个。也可以使用clear方法删除所有元素。
list.remove();
list.remove();
list.clear();
(改)列表中的元素,可以使用set方法修改元素值,操作时如果下标越界则会报错 。也可以使用replaceAll方法将给定的操作内容替换掉列表的中每一个元素。
list.set(, );
//replaceAll方法替换掉所有元素
list.replaceAll(a -> a +"s");//在所有元素后加上s
(查)列表可以直接输出;size方法可以获取到列表的长度,get方法可以通过索引获取到列表对应元素,indexOf方法可以获取对应元素的索引。
// 输出整个列表
System.out.println(list);
// 输出列表的长度
System.out.println(list.size());
// 通过索引获取列表对应元素
System.out.println(list.get());
// 获取列表元素的索引值
System.out.println(list.indexOf());
(遍历列表)遍历列表主要有3种方式,for循环遍历,foreach遍历,iterator迭代器遍历。
(拼接两个列表)
list<Integer> list - new Arraylist<>(Arrays.aslist(new Insteger[]{}))
栈
栈的定义:
栈是一种用于存储数据的简单数据结构。栈一个有序线性表,只能在表的一端执行插人和删除操作。最后插人的元素将被第一个删除。所以,栈也称为后进先出或先进后出线性表。
栈的几种主要基本操作:
void push(int data):入栈(将数据data插入到栈中)
int pop():出栈(删除并返回最后一个插入栈的元素)
int top():返回最后一个插入栈的元素,但不删除
int size():返回存储在栈中的元素个数
boolean isEmpty():返回栈是否是空栈
boolean isFull():返回是否是满栈
void Clear():清除整个栈
栈示例
public interface Stack<E> extends Iterable<E> {
//获取栈的size大小
public int size();
//判断栈是否为空
public boolean isEmpty();
//入栈 进栈一个元素 在线性表的表尾添加一个元素
public void push(E element);
//出栈 弹出一个元素 在线性表的表尾删除一个元素
public E pop();
//查看当前栈顶元素 并不是移除 查看线性表中最后一个元素
public E peek();
//对当前栈进行清空
public void clear();
}
队列
队列是一种特殊的线性表,遵循先入先出、后入后出的基本原则,一般来说,它只允许在表的前端进行删除操作,而在表的后端进行插入操作,但是java的某些队列运行在任何地方插入删除;比如我们常用的 LinkedList 集合,它实现了Queue 接口,因此,我们可以理解为 LinkedList 就是一个队列;
队列常用方法
add 增加一个元索 如果队列已满,则抛出一个IIIegaISlabEepeplian异常
remove 移除并返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常
element 返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常
offer 添加一个元素并返回true 如果队列已满,则返回false
poll 移除并返问队列头部的元素 如果队列为空,则返回null
peek 返回队列头部的元素 如果队列为空,则返回null
put 添加一个元素 如果队列满,则阻塞
take 移除并返回队列头部的元素 如果队列为空,则阻塞
drainTo(list) 一次性取出队列所有元素