当前位置:  开发笔记 > 编程语言 > 正文

如何按字母顺序对字符串的ArrayList进行排序?

如何解决《如何按字母顺序对字符串的ArrayList进行排序?》经验,为你挑选了2个好方法。

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

public class Dog {
    private String name;

    public Dog(){

    }

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

    public String getName(){
        return this.name;
    }
}

DogList(包含Dog类型的ArrayList)

import java.util.ArrayList;

public class DogList {

    private ArrayList dogList;

    public DogList(){
        DogList = new ArrayList<>();
    }

    public void setSize(int DogSize){
        for(int x = 0; x <= DogSize; x++){
            DogList.add(new Dog());
        }
    }

    public ArrayList getList(){
        return dogList;
    }
}

最后一个类DogSorter,它试图访问DogList ArrayList,然后尝试按字母顺序对该ArrayList的内容进行排序.

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;


public class DogSorter {
    private DogList list = new DogList();

    public void sortDogs{
        Collections.sort(list);
    }

    for(i = 0; i < list.length(); i++) {
        System.out.println(list.getList().get(i).getName();
    }
}

我为这篇长篇大论道歉.我的问题很简单:如何准确地对ArrayList的内容进行排序?我一直收到错误,说我正在尝试将错误的类型与我的"Collections.sort"行进行比较.如果有人可以提供帮助,请告诉我.谢谢.

编辑:要清楚,我正在尝试按存储在getName()中的字符串按字母顺序对每个对象进行排序



1> vishal gajer..:

请按照这种方式,不要做太多的代码,在这里,我看到你搞砸了你的代码,这很容易理解.

请按照这种最简单的方式按排序顺序(Ascending/Descending)排序Dog Object的列表.

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


class Dog implements Comparable{
    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 listDog = new ArrayList();
        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);

    }

}



2> Nayanjyoti D..:

使用

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

这将基于比较器比较每只狗.比较者只是比较狗的名字.

更新:适用于惯用的java 8风格

Collections.sort(dogList, (d1,d2) -> d1.getName().compareTo(d2.getName()));

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有