iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java数据结构中的Map与Set该怎么理解
  • 763
分享到

Java数据结构中的Map与Set该怎么理解

2023-06-29 01:06:30 763人浏览 八月长安
摘要

这篇文章主要为大家分析了Java数据结构中的Map与Set该怎么理解的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Java数据结构中的Map与Set该怎么理

这篇文章主要为大家分析了Java数据结构中的Map与Set该怎么理解的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Java数据结构中的Map与Set该怎么理解”的知识吧。

①只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

输入: [2,2,1]
输出: 1

首相我们可能会想到用位运算直接解决,但我们也可以用hash色条解决。

Java数据结构中的Map与Set该怎么理解

public int singleNumber(int[] nums) {        int single = 0;        for (int num : nums) {            single ^= num;        }        return single;    }

hashset也已轻松解决这个问题,将整个数组中的元素放入set,因为只出现一次的数字只有一次,所以我们将多次出现相同的数字移除

public int singleNumber(int[] nums){         HashSet<Integer> set = new HashSet<>();        for (int i = 0; i < nums.length; i++){            if (set.contains(nums[i])){                set.remove(nums[i]);            }else {                set.add(nums[i]);            }        }        for (int i = 0; i < nums.length; i++){            if (set.contains(nums[i])){                return nums[i];            }        }        return -1;     }

②宝石与石头

给你一个字符串 jewels 代表石头中宝石的类型,另有一个字符串 stones 代表你拥有的石头。 stones 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。

字母区分大小写,因此 "a" 和 "A" 是不同类型的石头。

输入:jewels = "aA", stones = "aAAbbbb"
输出:3

这道题和第一道题一样,这里是统计不同的个数。因为要区分大小写,所以我们将小写转大写,不影响我们做出判断

 public int numJewelsInStons(String jewels,String stons){        stons.toUpperCase(Locale.ROOT).toCharArray();         HashSet<Character> set = new HashSet<>();         for (int i = 0; i < jewels.length(); i++){            set.add(jewels.charAt(i));        }         int count = 0;        for (char ch:stons.toCharArray()) {            if(set.contains(ch)){                count++;            }        }        return count;    }

③坏键盘打字

旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。

输入

7_This_is_a_test
_hs_s_a_es

输出

7TI

这道题我们要分两个set,一个setActual记录真实打出的字母,一个setBroken统计坏掉的字母,判断条件是符合的字母既不是包含setActual中已经存在的,也不是setActual与setBroken相同的字母。主要是同时对比setActual与setBroken。

public static void main(String[] args) {        Scanner scan = new Scanner(System.in);        String str1 = scan.nextLine();        String str2 = scan.nextLine();         HashSet<Character> setActual = new HashSet<>();        for (char ch:str2.toUpperCase(Locale.ROOT).toCharArray()) {            setActual.add(ch);        }        HashSet<Character> setBroken = new HashSet<>();        for (char ch: str1.toUpperCase(Locale.ROOT).toCharArray()) {            if(!setActual.contains(ch) && !setBroken.contains(ch)){                setBroken.add(ch);                System.out.print(ch);;            }        }    }

④复制带随机指针的链表

给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。

构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点。

例如,如果原链表中有 X 和 Y 两个节点,其中 X.random --> Y 。那么在复制链表中对应的两个节点 x 和 y ,同样有 x.random --> y 。

Java数据结构中的Map与Set该怎么理解

输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]

输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]

Java数据结构中的Map与Set该怎么理解

Java数据结构中的Map与Set该怎么理解

Java数据结构中的Map与Set该怎么理解

Java数据结构中的Map与Set该怎么理解

class node {    int val;    Node next;    Node random;     public Node(int val) {        this.val = val;        this.next = null;        this.random = null;    }} public Node copyRandomList(Node head){        if (head == null) return null;        HashMap<Node,Node> map = new HashMap<>();        Node cur = head;        while (cur != null){            Node node = new Node(cur.val);            map.put(cur,node);            cur = cur.next;        }        cur = head;        while (cur != null){            map.get(cur).next = map.get(cur.next);            map.get(cur).random = map.get(cur.random);            cur = cur.next;        }        return map.get(head);      }

关于“Java数据结构中的Map与Set该怎么理解”就介绍到这了,更多相关内容可以搜索编程网以前的文章,希望能够帮助大家答疑解惑,请多多支持编程网网站!

--结束END--

本文标题: Java数据结构中的Map与Set该怎么理解

本文链接: https://www.lsjlt.com/news/321649.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java数据结构中的Map与Set该怎么理解
    这篇文章主要为大家分析了Java数据结构中的Map与Set该怎么理解的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Java数据结构中的Map与Set该怎么理...
    99+
    2023-06-29
  • Java数据结构之Map与Set专篇讲解
    目录①只出现一次的数字②宝石与石头③坏键盘打字④复制带随机指针的链表①只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次...
    99+
    2022-11-13
  • C语言数据结构中的栈该怎么理解
    这期内容当中小编将会给大家带来有关C语言数据结构中的栈该怎么理解,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。栈的链式实现主要内容(1) 栈包含7个元素,依次是67,3,88,6,1,7,0,采用尾插入法...
    99+
    2023-06-22
  • java类的组成结构该怎么理解
    这篇文章给大家介绍java类的组成结构该怎么理解,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。成员变量成员变量便是在类中定义的变量。例如这样:public class POP { ...
    99+
    2023-06-22
  • JavaScript中Map数据结构是怎么样的
    这篇“JavaScript中Map数据结构是怎么样的”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“JavaScript中Map数据结构是怎么样的”,小编整理了以下知识点,请大家跟着小编的步伐一...
    99+
    2023-06-28
  • JavaScript数据结构与算法怎么理解
    本篇内容主要讲解“JavaScript数据结构与算法怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript数据结构与算法怎么理解”吧!前言数据结构与算法这个词相信大家都听过、...
    99+
    2023-07-02
  • 怎么分析Java数据结构中的栈与队列
    今天就跟大家聊聊有关怎么分析Java数据结构中的栈与队列,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一,栈1,概念在我们软件应用 ,栈这种后进先出数据结构的应用是非常普遍的。比如你...
    99+
    2023-06-29
  • Java数据结构中图的原理与实现是怎样的
    小编今天带大家了解Java数据结构中图的原理与实现是怎样的,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“Java数据结构中图的原理与...
    99+
    2023-06-29
  • java中hashmap的底层数据结构与实现原理
    目录Hash结构HashMap实现原理为何HashMap的数组长度一定是2的次幂?重写equals方法需同时重写hashCode方法总结Hash结构 HashMap根据名称可知,其实...
    99+
    2022-11-12
  • C语言的数据结构怎么理解
    这篇文章主要介绍了C语言的数据结构怎么理解的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言的数据结构怎么理解文章都会有所收获,下面我们一起来看看吧。1 猜数字游戏-问题描述这个游戏一点都不陌生,猜价格是一度...
    99+
    2023-06-30
  • Python数据结构与算法中的栈怎么构建
    本篇内容主要讲解“Python数据结构与算法中的栈怎么构建”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python数据结构与算法中的栈怎么构建”吧!什么是栈栈有时也被称作“下推栈”。它是有序集...
    99+
    2023-06-29
  • Java数据结构中的堆怎么应用
    本篇内容介绍了“Java数据结构中的堆怎么应用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、堆的创建1、向下调整(以小堆为例) &nbs...
    99+
    2023-06-29
  • Java中的集合框架:理解Java中的数据结构和集合
    文章目录 Java中的集合框架:理解Java中的数据结构和集合1. 引言2. 技术原理及概念2.1 基本概念解释2.2 技术原理介绍 3. 实现步骤与流程3.1 准备工作:环境配置与依赖...
    99+
    2023-10-04
    数据结构 java 链表
  • Java数据结构链表的概念是什么与怎么实现
    本文小编为大家详细介绍“Java数据结构链表的概念是什么与怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java数据结构链表的概念是什么与怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、什么是...
    99+
    2023-06-29
  • Java编程中要了解的数据结构是怎样的
    今天就跟大家聊聊有关Java编程中要了解的数据结构是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。几乎所有的问题都需要面试者对数据结构有深刻的理解。无论你是初入职场的新兵(刚从...
    99+
    2023-06-02
  • Python数据结构与算法中的栈怎么实现
    这篇文章主要介绍“Python数据结构与算法中的栈怎么实现”,在日常操作中,相信很多人在Python数据结构与算法中的栈怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python数据结构与算法中的栈怎...
    99+
    2023-06-29
  • 怎么深入了解Java数据结构中常见的排序算法
    本篇文章给大家分享的是有关怎么深入了解Java数据结构中常见的排序算法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一,概念1,排序排序,就是使一串记录,按照其中的某个或某些关...
    99+
    2023-06-29
  • 怎么理解数据库中的过程与函数
    这篇文章主要介绍“怎么理解数据库中的过程与函数”,在日常操作中,相信很多人在怎么理解数据库中的过程与函数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解数据库中的过程与...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作