Java语言读取打开一个字典的对象的时候,怎么同时插入相同的数据并且不要重复,出错的解决的办法
在Java中,字典通常被表示为Map
对象。Map
对象存储键值对,其中键是唯一的。如果你试图插入一个已经存在的键,那么新的值将会覆盖旧的值。这就是为什么你不能在Map
中插入重复的键。
如果你想在Map
中存储多个相同的值,但是不想有重复的键,你有几种选择:
使用Set
作为值:你可以将Map
的值类型设置为Set
,这样你就可以在每个键下存储多个唯一的值。例如:
Map<String, Set<String>> map = new HashMap<>();
Set<String> set = new HashSet<>();
set.add("value1");
set.add("value2");
map.put("key", set);
在这个例子中,我们创建了一个Map
,它的键是String
类型,值是Set<String>
类型。我们然后创建了一个Set
,添加了两个值,并将这个Set
作为值放入了Map
中。
使用List
作为值:如果你想在每个键下存储多个值,包括重复的值,你可以将Map
的值类型设置为List
。例如:
Map<String, List<String>> map = new HashMap<>();
List<String> list = new ArrayList<>();
list.add("value1");
list.add("value2");
map.put("key", list);
在这个例子中,我们创建了一个Map
,它的键是String
类型,值是List<String>
类型。我们然后创建了一个List
,添加了两个值,并将这个List
作为值放入了Map
中。
**使用Multimap
**:Multimap
是Google Guava库提供的一个数据结构,它允许你在每个键下存储多个值。例如:
Multimap<String, String> multimap = ArrayListMultimap.create();
multimap.put("key", "value1");
multimap.put("key", "value2");
在这个例子中,我们创建了一个Multimap
,然后在同一个键下添加了两个值。
这些方法都可以让你在Map
中存储多个值,但是选择哪种方法取决于你的具体需求。
结果展示
代码展示
package com.one;
import java.util.*;
public class Flqgs {
public static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("请输入一行字符串:");
String num = input.nextLine();
int digital = 0, character = 0, other = 0, blank = 0;
char [] ch = num.toCharArray();
for(int i=0;i<ch.length;i++){
if(ch[i] >= 'a' && ch[i] <= 'z' || ch[i] >= 'A' && ch[i] <= 'z'){
character++;
}else if(ch[i] >= '0' && ch[i] <= '9'){
digital++;
}else if(ch[i] == ' '){
blank++;
}else{
other++;
}
}
System.out.println("字母个数:"+character);
System.out.println("数字个数:"+digital);
System.out.println("空格个数:"+blank);
System.out.println("其他个数:"+other);
}
}
深入java,逻辑练习,了解更多关注我哟!!!
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
public class DictionaryLoader {
public static void main(String[] args) {
String filePath = "dic.txt";
Set<String> dictionary = new HashSet<>();
try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = br.readLine()) != null) {
dictionary.add(line);
}
} catch (IOException e) {
e.printStackTrace();
}
for (String word : dictionary) {
System.out.println(word);
}
}
}