gpt4 book ai didi

java - 通过可比较接口(interface)对 ArrayList 进行排序
转载 作者:行者123 更新时间:2023-12-01 06:28:05 25 4
gpt4 key购买 nike

实际上我想对对象的数组列表进行排序。为此,我使用 Comparable 接口(interface)。它完全可以工作,但问题是,当我排序时,出现了这两个问题。

  1. 所有第一个字母大写的名字都聚集在顶部,所有第一个字母小的名字都聚集在底部。

  2. 所有排序后的大写字母单词都会聚集在一起,然后所有小写字母单词都会聚集在底部。

这是我的 bean

MyShares.java

   public class Myshares implements Comparable<Myshares> {

int id, parent;
String name, path, type, shared_with, shared_or_not, upload_request;

public int getParent() {
return parent;
}

public void setParent(int parent) {
this.parent = parent;
}

public String getUpload_request() {
return upload_request;
}

public void setUpload_request(String upload_request) {
this.upload_request = upload_request;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getPath() {
return path;
}

public void setPath(String path) {
this.path = path;
}

public String getType() {
return type;
}

public void setType(String type) {
this.type = type;
}

public String getShared_with() {
return shared_with;
}

public void setShared_with(String shared_with) {
this.shared_with = shared_with;
}

public String getShared_or_not() {
return shared_or_not;
}

public void setShared_or_not(String shared_or_not) {
this.shared_or_not = shared_or_not;
}

@Override
public int compareTo(Myshares another) {

return this.name.compareTo(another.getName());
}

}

这是输出

enter image description here

我认为它是基于 ASCII 代码的。我想要一个完整的排序列表。请看一下。

最佳答案

如果您希望进行不区分大小写的排序,我建议更改您的 compareTo() 方法,改为使用 String 的 compareToIgnoreCase() 方法 - 即:

public int compareTo(Myshares another) {
return this.name.compareToIgnoreCase(another.getName());
}

关于java - 通过可比较接口(interface)对 ArrayList<Object> 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16185601/

25 4 0