java 的一丢丢知识
程序员文章站
2022-06-17 19:06:40
HashMap是无序的(只是说不是你插入时的顺序);LinkedHashMap是有序的(按你插入的顺序);TreeMap 是按key排序的;Map map=new LinkedHashMap();List lis=new ArrayList(map.keySet()); 获取键值,利用键值来遍历Map把类压入list中时如果需要排序,可以在定义类的时候,定义一个使用Comparable接口的类List st...
HashMap是无序的(只是说不是你插入时的顺序);
LinkedHashMap是有序的(按你插入的顺序);
TreeMap 是按key排序的;
Map<String,Student> map=new LinkedHashMap<String,Student>();
List lis=new ArrayList(map.keySet()); 获取键值,利用键值来遍历Map
把类压入list中时如果需要排序,可以在定义类的时候,定义一个使用Comparable接口的类
List students = new ArrayList();
class Student implements Comparable{
public int compareTo(Student stu){ //必须重新这个方法
if(id==stu.id){
return name.compareTo(stu.name);
}
else return id-stu.id;
}
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Main {
public static int initValue = 8;
public static void main(String[] args) {
Student s1 = new Student(1, "hadoop");
Student s2 = new Student(2, "java");
Student s3 = new Student(1, "spark");
List<Student> students = new ArrayList<Student>();
students.add(s3);
students.add(s1);
students.add(s2);
System.out.println("Before:");
for(Student s : students){
System.out.println(s.toString());
}
Collections.sort(students);//调用这个类里面的自定义排序
System.out.println("After:");
for(Student s : students){
System.out.println(s.toString());
}
}
} //如果定义一个类的时候,需要压如list里面,然后进行排序
//定义类的时候可以继承Comparable类,然后重新里面的comparableTof方法进行自定义排序
class Student implements Comparable<Student>{
int id;
String name;
public Student(int id,String name){
this.id=id;
this.name=name;
}
@Override //重新排序的方法,返回是一个整数,大于零的排序方式
public int compareTo(Student stu){
if(id==stu.id){
return name.compareTo(stu.name);
}
else return id-stu.id;
}
public String toString() {
return "id: "+this.id+",name: "+this.name;
}
}
本文地址:https://blog.csdn.net/Are_you_ready/article/details/109631905