Java教程

Java 集合排序

我们可以对以下元素进行排序:
字符串对象 包装类对象 用户定义的类对象
Collections 类提供用于对集合的元素进行排序的静态方法。如果集合元素为Set类型,则可以使用TreeSet。但是,我们无法对List的元素进行排序。 Collections类提供用于对List类型元素的元素进行排序的方法。

用于对列表元素进行排序的Collections类的方法

公共无效排序(列表列表): 用于对列表的元素进行排序。列表元素必须为Comparable类型。
注意: String类和Wrapper类实现Comparable接口。因此,如果存储字符串或包装类的对象,则将是可比较的。

对字符串对象进行排序的示例

import java.util.*;
class TestSort1{
    public static void main(String args[]){
        ArrayList<String> al=new ArrayList<String>();
        al.add("Viru");
        al.add("Saurav");
        al.add("Mukesh");
        al.add("Tahir");
        Collections.sort(al);
        Iterator itr=al.iterator();
        while(itr.hasNext()){
            System.out.println(itr.next());
        }
    }
}
Mukesh
Saurav
Tahir
Viru

示例以相反的顺序对字符串对象进行排序

import java.util.*;
class TestSort2{
    public static void main(String args[]){
        ArrayList<String> al=new ArrayList<String>();
        al.add("Viru");
        al.add("Saurav");
        al.add("Mukesh");
        al.add("Tahir");
        Collections.sort(al,Collections.reverseOrder());
        Iterator i=al.iterator();
        while(i.hasNext()) {
            System.out.println(i.next());
        }
    }
}
Viru
Tahir
Saurav
Mukesh

对包装程序类对象进行排序的示例

import java.util.*;
class TestSort3{
    public static void main(String args[]){
        ArrayList al=new ArrayList();
        al.add(Integer.valueOf(201));
        al.add(Integer.valueOf(101));
        al.add(230);
        //internally will be converted into objects as Integer.valueOf(230)Collections.sort(al);
        Iterator itr=al.iterator();
        while(itr.hasNext()){
            System.out.println(itr.next());
        }
    }
}
101
201
230

对用户定义的类对象进行排序的示例

import java.util.*;
class Student implements Comparable<
Student>
{
    public String name;
    public Student(String name) {
        this.name = name;
    }
    public int compareTo(Student person) {
        return name.compareTo(person.name);
    }
}
public class TestSort4 {
    public static void main(String[] args) {
        ArrayList<
        Student>
        al=new ArrayList<
        Student>
        ();
        al.add(new Student("Viru"));
        al.add(new Student("Saurav"));
        al.add(new Student("Mukesh"));
        al.add(new Student("Tahir"));
        Collections.sort(al);
        for (Student s : al) {
            System.out.println(s.name);
        }
    }
}
Mukesh
Saurav
Tahir
Viru
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4