java 列表,栈,队列。

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)   一次性取出队列所有元素
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值