链表与按某特定量排序(Collection.sort(list);)

链表

eg:已知

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

建一个存Student类型对象的链表。

1.引入包:
import java.util.ArrayList;
import java.util.List;
2.声明:
List list=new ArrayList<>();
3.在链表中添加元素:
list.add(new Student(-1,25,“关羽”));
list.add(new Student(3,21,“张飞”));
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);)

eg:对学生按id排序并输出。

在上面链表的基础上:

1.引入包:
import java.util.Collections;
2.实现接口:
class Student implements Comparable<Student>
3.重写接口中方法:
public int compareTo(Student o) {
return this.id-o.id;
}//按照id排序输出,若是按照其他量输出,一改即可
4.调用方法:
Collections.sort(list);
5.输出链表中所有Student类型对象的信息:
for(Student student:list) {
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