集合框架,List常用API,栈和队列初识

发布于:2024-09-05 ⋅ 阅读:(83) ⋅ 点赞:(0)

回顾

集合框架

在这里插入图片描述

两个重点——ArrayList和HashSet.

在这里插入图片描述

Vector/ArraysList/LinkedList区别

Vector ArraysList LinkedList
底层实现 数组 数组 链表
线程安全 安全 不安全 不安全
增删效率 较低 较低
扩容 *2 *1.5 --------

在这里插入图片描述

(>>)运算级最低,记得加括号。

常用Api

List*

remove()的两种删除

在这里插入图片描述

API 解释
1 add() 添加
2 remove(index) 索引删除
3 remove(Object) 对象删除
4 set(index,e)《Set》 修改
5 clear() 清空
6 size() 长度
7 get(index)《List》 查询
8 indexOf()《List》 找出位置
9 contains(用前要重写) 包含
10 isEmpty() 集合为空
11 itreator() 迭代器(遍历和删除)
12 toString() 转换为字符串

数组比较

在这里插入图片描述
在这里插入图片描述

Stack栈

后进先出

栈是一种特殊的数据结构,后进先出。
在这里插入图片描述

结构

底层还是数组。Vector派生出来的,继承Vector。

在这里插入图片描述

Api方法

在这里插入图片描述

push():入栈

在这里插入图片描述

peek():栈顶

取栈顶不会删除栈顶。

System.out.println(“栈顶:”+stack.peek());//栈顶——最后进栈的

pop():出栈

出栈会删除栈顶元素。

System.out.println(“wu:”+stack.pop());//出栈

在这里插入图片描述

完整代码:

package com.ffyc.Stack;

import java.util.Stack;

public class StackDemo01 {
    public static void main(String[] args) {
        Stack<Integer> stack = new Stack<>();
        //存——压栈
        stack.push(1);
        stack.push(2);
        stack.push(3);
        stack.push(4);
        stack.push(5);

        System.out.println("栈:"+stack);
        System.out.println("栈顶:"+stack.peek());//栈顶——最后进栈的
        //System.out.println("wu:"+stack.pop());//出栈

        //倒序打印
        while (stack.size()>0){
            int temp = stack.pop();//pop()后当前的栈顶元素自动删除
            System.out.println(temp);
        }

    }
}

反转"hello"

在这里插入图片描述

中间的回文数量的题可以用

计算器题目

准备工作

在这里插入图片描述

length-1 否则越界

在这里插入图片描述

————————————————————————————————————————————

在这里插入图片描述

Queue队列

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

offer()进

队头添加数据

poll()出

从队头取出元素/数据

peek()顶

取出最先进队的元素。第一个offer()进去的元素。

在这里插入图片描述
是下面代码的输出:queue.peek—>1

队列

在这里插入图片描述

可排序的队列

在这里插入图片描述