Java语言打开文件里面的字典,字典里面的项一旦出现重复的情况

Java语言打开文件里面的字典,字典里面的项一旦出现重复的情况,要把重复的数据都保留,还是要用字典,怎么实现呢

除了心寒说的map,还可以用Google Guava的Multiset类来存字典中的单词,每个单词添加到Multiset里在便利输出每个单词

字典里面嵌套list,比如这样
Map<String, List> test= new HashMap<>();

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/1084076
  • 这篇博客也不错, 你可以看下【Java】输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分
  • 同时,你还可以查看手册:java-学习Java语言 - 描述Java编程语言的基本概念和特点的课程。-类和对象》描述了如何编写创建对象的类,以及如何创建和使用对象。-课堂 中的内容
  • 除此之外, 这篇博客: 字节跳动笔试算法面试题:JAVA语言的三种实现方式,哪一种最优?中的 方法二:双指针 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    双指针的核心思想就是:一个指针负责循环遍历,另一个指针负责条件处理

    那针对于本题,如何用双指针解法呢?请看下面源码。我将原理以及解释都放在代码中,方便大家理解。只要大家记住一点,双指针的特性即可,学会灵活使用双指针,可以解决很多类似的算法题型。

    public static void main(String[] args) {
            String str="the sky is blue";
            //定义左右指针,右指针不动,左指针向左移动取单词
            int right = str.length() - 1;
            int left = right;
            //存放反转后的字符串
            StringBuilder res = new StringBuilder();
            while(left >= 0) {
                // 查找第一次出现的空格
                while(left >= 0 && str.charAt(left) != ' ') left--;
                //将单词存放到res对象中
                res.append(str.substring(left + 1, right + 1) + " ");
                //跳动单词之间的空格
                while(left >= 0 && str.charAt(left) == ' ') left--;
                // right 指向下个单词的尾字符,左指针继续前进
                right = left;
            }
            //去掉末尾的空格" "
            System.out.println(res.toString().trim());
        }
  • 您还可以看一下 徐无忌老师的Java进阶高手课-深入浅出Java网络编程课程中的 案例实战:浏览器打开一个网址,整个过程是怎么样的?小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    我可以回答这个问题。

    在Java中可以使用HashMap或者Hashtable来实现字典功能。当字典中的项出现重复时,使用HashMap可以保留所有重复数据,而Hashtable则会覆盖原有的值。

    使用HashMap可以按照以下步骤实现字典功能并保留所有重复数据:

    1. 创建一个HashMap对象,用于存储key-value对;
    2. 使用put方法将key-value对加入HashMap中;
    3. 在需要时使用get方法获取相应的value值;
    4. 如果需要遍历HashMap中的所有key-value对,可以使用entrySet()遍历。

    示例代码如下:

    import java.util.HashMap;
    import java.util.Map;
    
    public class Main {
        public static void main(String[] args) {
            Map<String, Integer> dictionary = new HashMap<String, Integer>();
            dictionary.put("apple", 1);
            dictionary.put("orange", 2);
            dictionary.put("banana", 3);
            dictionary.put("apple", 4);
            System.out.println(dictionary.get("apple"));
        }
    }
    

    输出结果为4,说明HashMap成功保留了重复数据。

    如果使用Hashtable实现字典功能,可以按照以上步骤,只不过使用Hashtable类替换HashMap类。

    如果需要对HashMap或Hashtable类进行深入了解,可以参考Java官方文档。

    代码演示


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^