栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

day4 栈 ,HashMap

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

day4 栈 ,HashMap

栈是限定仅在表尾进行插入或者删除的线性表。对于栈来说,表尾端称为栈顶(top),表头端称为栈底(bottom)。不含元素的空表称为空栈。因为栈限定在表尾进行插入或者删除,所以栈又被称为后进先出的线性表,一个例子

import java.util.Stack;

public class arrayStackTest {
    public static void main(String[] args) {
        arrayStack stack = new arrayStack(3);
        //空栈的情况
        stack.show();
        System.out.println();
        //入栈
        stack.push(1);
        stack.push(2);
        stack.push(3);
        //栈的大小只有3 所以会超出
        stack.push(4);


        //查看栈的情况
        stack.show();
        System.out.println();
        //出栈
        stack.pop();
        stack.show();

        System.out.println();
        System.out.println();
        //jdk的栈方法
        Stack stack1 = new Stack();
        //查看栈是否为空
        System.out.println(stack1.empty());
        //入栈
        stack1.push(1);
        stack1.push(2);
        stack1.push(3);
        System.out.println();
        //查看指定值再栈中的位置
        System.out.println("查看指定值再栈中的位置"+stack1.search(2));
        //查看栈顶数据(不是出栈)
        System.out.println();
        System.out.println("查看栈顶数据"+stack1.peek());
        System.out.println();
        //出栈
        System.out.println("出栈"+stack1.pop());
        System.out.println();
        System.out.println("查看栈顶数据"+stack1.peek());
        stack1.peek();
    }
}
//声明一个类 用数组来模拟栈
class arrayStack {
    private static int maxSize;//栈的大小
    private static int[] stack;//栈
    private static int top = -1;//栈顶

    //重写构造方法来构造一个栈
    public arrayStack(int maxSize){
        //获取栈的大小
        this.maxSize = maxSize;
        //声明栈的大小
        stack = new int[this.maxSize];
    }
    //查看栈是否为空
    public static boolean isEmpty(){
        return top == -1;
    }
    //查看栈是否已满
    public static boolean isFull(){
        return top == maxSize-1;
    }
    // 将传入的值入栈
    public static void push(int value){
        //查看栈是否满了
        if (isFull()){
            System.out.println("栈已满!");
            return;
        }
        top++;
        stack[top] = value;
    }
    //出栈
    public static int pop(){
        //查看是否为空
        if (isEmpty()){
            throw new RuntimeException("栈空,出栈失败");
        }
        top--;
        return stack[top+1];
    }
    //遍历栈
    public static void show(){
        if (isEmpty()){
            System.out.println("栈空!");
            return;
        }
        for (int i=top;i>-1;i--){
            System.out.println(stack[i]);
        }
    }
}

HashMap 是一个储存 键值对(键值) 集合 一个例子

import java.util.HashMap;
import java.util.LinkedHashMap;

public class hashMapTest {
    public static void main(String[] args) {
        //创建一个hashmap  里面的每一个元素都是一个键值对(kay,value)
        //<>内前面的是key的数据类型  后面是value 值的数据类型
        HashMap hm = new HashMap();
        //添加
        hm.put(1,"数据1");
        HashMap hm1 = new HashMap();
        hm1.put(2,"数据2");
        hm1.put(3,"数据3");
        //将一个hashmap集合的内加进来
        hm.putAll(hm1);
        //获取集合内容
        System.out.println(hm.entrySet());
        //获取集合内数据的数量
        hm.size();
        //克隆集合?
        System.out.println(hm.clone());
        //如果要添加的键值对中的键(key)集合内没有那么添加 如果有就不添加
        hm.putIfAbsent(4,"数据4");
        hm.putIfAbsent(3,"数据4");
        System.out.println(hm);
        //删除对应kay的键值对
        hm.remove(4);
        System.out.println(hm);
        //查看对应key的键值对是否在集合中
        System.out.println(hm.containsKey(3));
        //查看对应value的键值对是否在集合中
        System.out.println(hm.containsValue("数据4"));
        //查看集合内所有的key
        System.out.println(hm.keySet());
        //查看集合内所有的value
        System.out.println(hm.values());
        //查看传入的kay对应的键值对
        System.out.println(hm.get(2));
        //查看传入的kay对应的键值对 如果没有找到就返回后面设置的那个信息
        System.out.println(hm.getOrDefault(4,"未找到"));
        //替换对应kay的键值对
        hm.replace(3,"替换数据");
        System.out.println(hm.get(3));

    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/874095.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号