연결된 목록 및 일정량 정렬 (Collection.sort (list);)

연결된 목록

예 : 알려진

class Student {
    
    
	int id;int age;String name;
	Student(int id,int age,String name){
    
    
		this.id=id;
		this.age=age;
		this.name=name;
	}
}

학생 유형 개체의 연결 목록을 만듭니다.

1. 패키지 가져 오기 :
import java.util.ArrayList;
import java.util.List;
2. 진술 :
목록 list = new ArrayList <> ();
3. 연결 목록에 요소를 추가합니다.
list.add (new Student (-1,25, "关羽"));
list.add (new Student (3,21, "Zhang Fei"));
list.add (new Student (2,18, "刘备" ));
list.add (new Student
(4,32, "袁绍")); list.add (new Student (-2,16, "曹操"));
4. 연결 목록에있는 모든 요소의 ID를 출력합니다.
for (Student student : list) {
System.out.printf ( "% d", student.id);
}
5. 모든 정보를 출력하려면 Student 클래스에 메서드를 추가합니다.
public String toString () {
return name + ", id ="+ id + ", age ="+ age;
}

암호:

import java.util.ArrayList;
import java.util.List;

public class Main{
    
    
	public static void main(String args[]) {
    
    
		List<Student> list=new ArrayList<>();
		list.add(new Student(-1,20,"赵今今"));
		list.add(new Student(3,21,"陆峥"));
		list.add(new Student(2,18,"庞贝"));
		list.add(new Student(4,24,"喻幸"));
		list.add(new Student(-2,18,"苏盛夏"));
		list.add(new Student(5,22,"冷夜辰"));
		System.out.println("排序前:");
		for(Student student:list) {
    
    
			System.out.printf("%d ",student.id);
		}
		System.out.println();
		System.out.println();
		for(Student student:list) {
    
    
			System.out.println(student.toString());
		}
	}
}
class Student implements Comparable<Student>{
    
    
	int id;int age;String name;
	Student(int id,int age,String name){
    
    
		this.id=id;
		this.age=age;
		this.name=name;
	}
	@Override
	public int compareTo(Student o) {
    
    
		// TODO 自动生成的方法存根
		return this.id-o.id;
	}
	public String toString() {
    
    
        return name +",id=" + id +", age=" + age ;
    }
}

결과:
여기에 사진 설명 삽입


일정량으로 정렬 (Collection.sort (list);)

예 : ID별로 학생을 정렬하고 출력합니다.

위의 연결 목록을 기반으로 :

1. 패키지 가져 오기 :
import java.util.Collections;
2. 인터페이스를 구현합니다.
클래스 학생 implements Comparable<Student>
3. 인터페이스에서 메서드를 다시 작성합니다.
public int compareTo (Student o) {
return this.id-o.id;
} // id에 따라 출력 정렬, 다른 수량에 따라 출력되면 그냥 변경
4. 호출 방법 :
Collections.sort (list);
5. 연결된 목록에있는 모든 학생 유형 개체의 출력 정보 :
for (학생 학생 : 목록) {
System.out.println (student.toString ());
}

코드 쇼 :

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

public class Main{
    
    
	public static void main(String args[]) {
    
    
		List<Student> list=new ArrayList<>();
		list.add(new Student(-1,20,"赵今今"));
		list.add(new Student(3,21,"陆峥"));
		list.add(new Student(2,18,"庞贝"));
		list.add(new Student(4,24,"喻幸"));
		list.add(new Student(-2,18,"苏盛夏"));
		list.add(new Student(5,22,"冷夜辰"));
		System.out.println("排序前:");
		for(Student student:list) {
    
    
			System.out.printf("%d ",student.id);
		}
		System.out.println();
		for(Student student:list) {
    
    
			System.out.println(student.toString());
		}
		Collections.sort(list);
		System.out.println();
		System.out.println("排序后:");
		for(Student student:list) {
    
    
			System.out.printf("%d ",student.id);
		}
		System.out.println();
		for(Student student:list) {
    
    
			System.out.println(student.toString());
		}
	}
}
class Student implements Comparable<Student>{
    
    
	int id;int age;String name;
	Student(int id,int age,String name){
    
    
		this.id=id;
		this.age=age;
		this.name=name;
	}
	@Override
	public int compareTo(Student o) {
    
    
		// TODO 自动生成的方法存根
		return this.id-o.id;
	}
	public String toString() {
    
    
        return name +",id=" + id +", age=" + age ;
    }
}

결과:
여기에 사진 설명 삽입

추천

출처blog.csdn.net/weixin_46020391/article/details/112994518