gpt4 book ai didi

java - 迭代哈希集并打印结果

转载 作者:行者123 更新时间:2023-12-01 13:51:17 25 4
gpt4 key购买 nike

我试图在主类中的 2 个单词组上使用 WordGroup 类中的 getWordSet() 方法,并循环返回的哈希集并打印出结果,但它甚至没有编译。我对代码的尝试是在我的主类底部的星号之间。有人可以帮我吗?编辑:我已经实现了建议的更改,如下面的代码所示,这导致了一个新问题 - 我希望两个词组进入同一组,但是当我尝试将 hashSTwo 更改为 hashSOne 试图将所有词放入相同的集合中时hashSOne 它无法编译。

import java.util.HashSet;
import java.util.HashMap;

public class Main{

public static void main(String[] args){
WordGroup wordgroupOne= new WordGroup ("You can discover more about a person in an hour of play than in a year of conversation");
WordGroup wordgroupTwo= new WordGroup ( "When you play play hard when you work dont play at all");

String[] quoteOne = wordgroupOne.getWordArray();
String[] quoteTwo = wordgroupTwo.getWordArray();

for (String words : quoteOne){
System.out.println(words);
}

for (String words : quoteTwo){
System.out.println(words);
}

**HashSet<String> hashSOne = wordgroupOne.getWordSet();
HashSet<String> hashSTwo = wordgroupTwo.getWordSet();

for (String set : hashSOne){
System.out.println(set);
}

for (String set : hashSTwo){
System.out.println(set);
}**
}
}

词组集:

import java.util.HashSet;
import java.util.HashMap;

public class WordGroup {
public String words;

public WordGroup (String getWords){
words = getWords.toLowerCase();
}

public String[] getWordArray(){
return words.split(" ");
}

public HashSet<String> getWordSet(){
HashSet<String> set = new HashSet<String>();
String[] p = getWordArray();
for (String items : p){
set.add(items);
}
System.out.println(set);
return set;
}

public HashMap<String, Integer> getWordCounts() {
HashMap<String, Integer> map = new HashMap<String, Integer>();
String[] q = getWordArray();
for (String stuff : q) {
Integer oldVal = map.get(stuff);
if (oldVal == null){
oldVal = 0;
}
map.put(stuff, oldVal+1);
}
System.out.println(map);
return map;
}
}

最佳答案

您不应该在 quoteOne 上使用 getWordSet(),因为它是 String[] 并且没有这样的方法。您可能想在 WordGroup 类型的 wordgroupOne 上使用它。 quoteTwo 也是如此。

此外,您应该更喜欢 programming on interfaces如果可能的话,而不是实际的类,因此可以更改您的方法以返回 Set 而不是 HashSet

<小时/>

How would I go about putting both results in the same hashset? I tried changing them to both hashSOne and it just wrote over my first hashset with the second

你可能做到了

hashSOne = hashSTwo;

这只是使 hashSOne 引用使用来自 hashSTwo 引用的集合。

如果您想创建包含两个集合中所有项目的新集合,您可以这样做

//lets create Set with elements from first set
Set<String> allElements = new HashSet<>(hashSOne);

//now lets add all elements from second set
allElements.addAll(hashSTwo);//this will not add duplicates

关于java - 迭代哈希集并打印结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19940608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com