gpt4 book ai didi

java - 按字母顺序排列

转载 作者:行者123 更新时间:2023-11-30 02:58:31 25 4
gpt4 key购买 nike

我是 Java 新手,我正在尝试按字母顺序排列术语数组列表。 (术语定义为 char 和 int)(例如 {Term('Z',4),Term('C',3),Term('Q',2) ...} )

我的代码如下:

    public Term nextElement()
{
Term max = terms.get(0);
char maxtest = max.getElement();
for (int i = 1; i < terms.size(); i++){
Term tester = terms.get(i);
char maxtest2 = tester.getElement();
if (maxtest2 > maxtest) {
tester = max;
}
}
return max;
}

为什么这不起作用?我该如何做到这一点?我的 arrayList 称为 term,填充类型为 Term

最佳答案

您的这行代码有问题。您的类(class)不是 Comparable 的类型那么,根据哪个属性或标准compareTo()方法将 compare这两个对象???

   res = maxtest.compareTo(maxtest2); //Your maxtest object is not Comparable Type.

您必须需要上课 Term比较型。并且,重写方法 compareTo()根据您的需要。

您没有提及您的类的变量或结构 Term 。所以,我假设你的类(class)有这样的结构。

public class Term implements Comparable<Term> {
private Character alpha;
private int number;
//getter and setters +Constructors as you specified
....
....
...
.....
// Now Set a criteria to sort is the Alphanumeric.
@Override
public int compareTo(Term prm_obj) {
if (prm_obj.getAlpha() > this.alpha) {
return 1;
} else if (prm_obj.getAlpha() < this.alpha) {
return -1;

} else {
return 0;
}

}

现在你的类(class)变成了comparable类型。所以您可以申请Collections.sort(Collection obj)这会自动sort你的ArrayList<Term> .

这里我为此编写了一个演示。

public static void main(String... args){

List<Term> obj_listTerm = new ArrayList<>();
//add all the data you given in question
obj_listTerm .add(new Term('Z', 4));
obj_listTerm .add(new Term('Q', 2));
obj_listTerm .add(new Term('c', 3));

// print without Sorting your Term ArrayList.
System.out.println("This is the list unsorted: " + myTermList);
// Sort Using Collections.sort() Method.

Collections.sort(myTermList);

// After applying sort() you may see your Sorted ArrayList.
System.out.println("This is the list SORTED: " + myTermList);
}

关于java - 按字母顺序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36564264/

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