如何在 Java 中创建一个包含已排序字符串和特定整数的列表?

How can I create a List with sorted Strings and a specific Integer in Java?

那里有干草, 我需要为一个项目创建一个列表,其中包含此方法的 数量 个术语,但它并没有像我想的那样起作用。 “term”-名称也必须看起来像这样,并以“Term:1”、“Term:2”、...、“Term:amount”的形式排序。如果 amount 应该是负数,我必须 return 一个空列表。 我尝试了以下方法:

public static List <String> createTerms(int amount){
List <String> termNames = new ArrayList<String>();
    if (amount>0){
        termNames.add(amount,"Term:"+amount);
        Collections.sort(termNames);
        return termNames;
    }else
        return Collections.emptyList();
}

termNames 只会有 1 个元素,因为列表是在函数范围内声明的。您应该考虑另一种数据结构,例如此实现的字典,如果您打算用超过 1 个元素填充它,请确保它是一个全局变量

编辑:您应该将标记从 Java脚本更改为 Java 以确保您收到正确的建议

尽管它被标记为 Java脚本,但它看起来像 Java。看看 ArrayList documentation。这是 add():

的方法
add(int index, E element)

它在 index 的结构中添加 element。所以它不会像您在代码中假设的那样工作。如果您想使用 ArrayList,即使我反对并建议您使用 Map 之类的东西,发现 here,我还是建议您使用 for 循环来添加条款in. 所以而不是:

 termNames.add(amount,"Term:");
 Collections.sort(termNames);

你可以这样做:

  if (amount > 0){
      for (int i = 0; i < amount; i++) {
          String element = "Term: " + (i + 1);
          termNames.add(element);
      } 
      return termNames;
  }

另外,我对你的逻辑有点困惑。如果 amount < 0,提示不应该是你应该 return 一个空列表吗?如果我的回答没有回答您的问题,您能澄清一下吗?