【问题标题】:Calling a method with a List Atrribute in Java在 Java 中调用具有列表属性的方法
【发布时间】:2019-03-30 16:49:57
【问题描述】:

我目前正在寻找一种方法,该方法可以让我获得多个单词的拼字游戏分数,并返回得分最高的单词。我已经能够制作让我获得单词分数的方法,下一部分是能够调用具有多个单词的方法,它将返回得分最高的单词。

public String highestScoringWord(List<String> words) {
    // TODO: find the word with the highest score
    int highestScore = 0;
    String HighScoreWord = "";
    for(int i=0; i<words.size(); i++){
        int currentScore = scoreForWord(words.get(i));
        if(currentScore>highestScore){
            HighScoreWord = words.get(i);
        };
    };

    return HighScoreWord;
}

我正在使用 blueJ,我将如何使用它的界面或 codePad 来调用这个带有单词列表的方法。

谢谢

【问题讨论】:

  • 假设yourCodePad是对象,String highScore = yourCodePad.highestScoringWord(yourList);?
  • @GBlodgett 我可以将值放在括号内吗? ....highestScoreingWord("Hello","One","Dog");
  • 是的。使用highestScoreingWord(Arrays.asList("Hello", "One", "Dog"))

标签: java string list methods bluej


【解决方案1】:

首先你必须从你的话中生成List&lt;String&gt;,因为String highestScoringWord(List&lt;String&gt; words) 方法只接受List&lt;String&gt; 作为输入参数。在您的情况下,您现在可以从多个 String 对象中创建 List&lt;String&gt;

List<String> words= Arrays.AsList("Word1","Word2","Word3","Word4");

现在将此列表传递给已定义的函数highestScoringWord

String highestScore=highestScoringWord(words);

你会得到你想要的结果。

【讨论】:

  • 请连同这段代码一起添加一些解释
【解决方案2】:

如果您使用的是 Java 8 或更新版本,您可以使用流来获取您即将创建的分数列表的“最大值”:

List<String> words = Arrays.asList("Dog", "Cat", "Bird");
int highest = words.stream()
        .map(this::scoreForWord)
        .max(Integer::compareTo)
        .orElse(0);

这段代码的作用:

  • words.stream() - 使用单词列表初始化流。
  • .map(this::scoreForWord) - 使用 int scoreForWord(String) 函数的逻辑将每个字符串转换为 int。该方法被称为this,因为我假设它是一个实例方法。如果方法是static,则必须使用类名来引用函数:ScrabbleScorer::scoreForWord
  • .max(Integer::compareTo) - 获取从前一个操作创建的Integer 流的最大值。逻辑将是默认的整数比较器(即Integer::compareTo
  • .orElse(0) - 因为.max() 操作返回一个Optional&lt;Integer&gt; 当一开始的给定列表为空时 - 我们将处理空返回场景。我们使用值0 来假设这种情况。

【讨论】:

    猜你喜欢
    • 2012-04-09
    • 2018-03-03
    • 1970-01-01
    • 2020-07-03
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 2017-02-23
    • 1970-01-01
    相关资源
    最近更新 更多