Java 如何按字母顺序对字符串数组列表进行排序?

Java 如何按字母顺序对字符串数组列表进行排序?,java,sorting,arraylist,collections,Java,Sorting,Arraylist,Collections,我正在尝试创建一个程序,可以按字母顺序对ArrayList的内容进行排序。现在我有三门课在我的课程中 狗 DogList(包含Dog类型的ArrayList) import java.util.ArrayList; 公共类狗名单{ 私有数组列表; 公众狗名单(){ DogList=newarraylist(); } 公共void设置大小(int DogSize){ 对于(int x=0;x您需要实现Comparator接口。对于类和变量,您使用相同的名称DogList。请更改它 例如: priv

我正在尝试创建一个程序,可以按字母顺序对ArrayList的内容进行排序。现在我有三门课在我的课程中

DogList(包含Dog类型的ArrayList)

import java.util.ArrayList;
公共类狗名单{
私有数组列表;
公众狗名单(){
DogList=newarraylist();
}
公共void设置大小(int DogSize){

对于(int x=0;x您需要实现Comparator接口。

对于类和变量,您使用相同的名称DogList。请更改它

例如:

private ArrayList<Dog> innerList;
你的狗的等级必须是可比的

public class Dog implements Comparable {

public int compareTo(Object _other)
{
// DO the comparaison
return 1;
}

}

您可以使用比较器来解决此问题


我希望这将解决您的问题-

请按照此方法操作,不要编写太多代码,我发现您的代码很混乱,很难理解。

请按照这个最简单的方法对狗对象列表进行排序(升序/降序)

import java.util.ArrayList;
导入java.util.Collections;
类狗实现可比性{
字符串名;
狗(字符串名称){
this.name=名称;
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
@凌驾
公共内部比较(狗o){
返回此.name.compareTo(o.getName());//按升序排序
//返回o.getName().compareTo(this.name);使用此行按降序对狗名进行排序
}
@凌驾
公共字符串toString(){
返回此.name;
}
}
公共类狗排序{
公共静态void main(字符串[]args){
ArrayList listDog=新的ArrayList();
添加(新狗(“狗”));
添加(新狗(“aaa”);
添加(新狗(“bbb”);
System.out.println(listDog);
Collections.sort(listDog);
System.out.println(listDog);
}
}
使用

您可以按以下方式进行排序:

  Collections.sort(list);

要么在你的Dog类中实现Compariable接口,要么编写一个自定义比较器,根据狗的名字对狗进行排序。

对OP没有帮助,因为他已经这样做了…你使用的是原始类型,因为…?顺便问一下:为什么你发布的代码明显不是你正在使用的代码?请避免。你的建议应该如何工作?
list
既不是数组,也不包含数组。
private ArrayList<Dog> innerList;
public sort() { 
Collections.sort(innerList);
}
public class Dog implements Comparable {

public int compareTo(Object _other)
{
// DO the comparaison
return 1;
}

}
import java.util.ArrayList;
import java.util.Collections;


class Dog implements Comparable<Dog>{
    String name;

    Dog(String name){
        this.name = name;
    }

    public String getName() {
        return name;
    }

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

    @Override
    public int compareTo(Dog o) {
        return this.name.compareTo(o.getName()); // dog name sort in ascending order 
        //return o.getName().compareTo(this.name); use this line for dog name sort in descending order 
    }

    @Override
    public String toString() {
        return this.name;
    }
}


public class DogSort {

    public static void main(String[] args) {
        ArrayList<Dog> listDog = new ArrayList<Dog>();
        listDog.add(new Dog("doggy"));
        listDog.add(new Dog("aaa"));
        listDog.add(new Dog("bbb"));
        System.out.println(listDog);
        Collections.sort(listDog);
        System.out.println(listDog);

    }

}
Collections.sort(dogList, new Comparator<Dog>(){
    public int compare(Dog d1, Dog d2){
         return d1.getName().compareTo(d2.getName());
    }    
});
Collections.sort(dogList, (d1,d2) -> d1.getName().compareTo(d2.getName()));
  Collections.sort(list);