如何在 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 一个空列表吗?如果我的回答没有回答您的问题,您能澄清一下吗?
那里有干草, 我需要为一个项目创建一个列表,其中包含此方法的 数量 个术语,但它并没有像我想的那样起作用。 “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 一个空列表吗?如果我的回答没有回答您的问题,您能澄清一下吗?