Java哈希映射问题。

Java哈希映射问题。,java,arraylist,hashmap,Java,Arraylist,Hashmap,我学校compsci网站上的测试仪不工作,所以我目前无法测试我的代码。代码中有两个方面我有点困惑,希望您能提供一些帮助。所以我写的代码如下 public int countPairs(String[] words) { Set <String> pairs = new HashSet<String>(); int noOfPairs= 0; for (String word:words){ Map noOfOccurence

我学校compsci网站上的测试仪不工作,所以我目前无法测试我的代码。代码中有两个方面我有点困惑,希望您能提供一些帮助。所以我写的代码如下

public int countPairs(String[] words) {
     Set <String> pairs = new HashSet<String>();
     int noOfPairs= 0;
     for (String word:words){
         Map noOfOccurencesOfEachLetter= getMap(word);
         ArrayList<Integer> valuesFromFirstWord = new ArrayList<Integer>(noOfOccurencesOfEachLetter.values());
         Collections.sort(valuesFromFirstWord);
         java.util.List<String> list = new ArrayList<String>(Arrays.asList(words));
         list.remove(word);
         String[] oneLessWord = list.toArray(new String[words.length-1]);
         for(String secondWord:oneLessWord){
             Map secondNoOfOccurencesOfEachLetter = getMap(secondWord);
             ArrayList<Integer> valuesFromSecondWord = new ArrayList<Integer>(secondNoOfOccurencesOfEachLetter.values());
             Collections.sort(valuesFromSecondWord);
             if (valuesFromFirstWord.equals(valuesFromSecondWord)){
                 noOfPairs+=1;
             }

         }


     }
     return noOfPairs/2;
  }
或者我需要通过循环使用创建字典中包含的值的列表吗

2) 为了避免在第二个for循环中包含相同的单词,我创建了一个名为onelesbrow的新数组,该数组包含单词的所有元素,但for循环的首字母要遍历的单词除外。这三行代码能做到这一点吗

java.util.List<String> list = new ArrayList<String>(Arrays.asList(words));

list.remove(word);

String[] oneLessWord = list.toArray(new String[words.length-1]);
java.util.List List=newarraylist(Arrays.asList(words));
列表。删除(word);
String[]onelesswigh=list.toArray(新字符串[words.length-1]);
如果有任何反馈,我将不胜感激

非常感谢, 朱奈德

1) 这行代码有效吗?或者我需要通过循环使用创建字典中包含的值的列表吗

这很好。返回一个
集合
,并且
数组列表
具有允许您将
集合
传递给它的

2) 为了避免在第二个for循环中包含相同的单词,我创建了一个名为onelesbrow的新数组,该数组包含单词的所有元素,但for循环的首字母要遍历的单词除外。这三行代码能做到这一点吗


是的,他们正是这样做的。

“我学校compsci网站上的测试仪不工作,所以我目前无法测试我的代码”,因此不能代替编译器。这个问题似乎离题了,因为OP没有热情或专业精神来检查他们的代码是否编译。
java.util.List<String> list = new ArrayList<String>(Arrays.asList(words));

list.remove(word);

String[] oneLessWord = list.toArray(new String[words.length-1]);