Java语言打开文件里面的字典,字典里面的项一旦出现重复的情况,要把重复的数据都保留,还是要用字典,怎么实现呢
除了心寒说的map,还可以用Google Guava的Multiset类来存字典中的单词,每个单词添加到Multiset里在便利输出每个单词
字典里面嵌套list,比如这样
Map<String, List> test= new HashMap<>();
双指针的核心思想就是:一个指针负责循环遍历,另一个指针负责条件处理
那针对于本题,如何用双指针解法呢?请看下面源码。我将原理以及解释都放在代码中,方便大家理解。只要大家记住一点,双指针的特性即可,学会灵活使用双指针,可以解决很多类似的算法题型。
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中可以使用HashMap或者Hashtable来实现字典功能。当字典中的项出现重复时,使用HashMap可以保留所有重复数据,而Hashtable则会覆盖原有的值。
使用HashMap可以按照以下步骤实现字典功能并保留所有重复数据:
示例代码如下:
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官方文档。
代码演示