Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将一个arraylist分别排序到另一个arraylist_Java_Android_Sorting_Comparator - Fatal编程技术网

Java 将一个arraylist分别排序到另一个arraylist

Java 将一个arraylist分别排序到另一个arraylist,java,android,sorting,comparator,Java,Android,Sorting,Comparator,我有一个ArrayList(列表A)包含一些ID,另一个ArrayList(列表B)包含名称 Collections.sort(list A); 我需要根据对应的ID获取列表B。在这种情况下我应该怎么做?一种可能的方法是: 创建一个类并向其中添加所需的属性。然后使用比较器根据需要进行排序 我已经给出了如何根据班级的id和name进行排序的示例Student public class Student { private int id; private String name;

我有一个
ArrayList
(列表A)包含一些ID,另一个
ArrayList
(列表B)包含名称

Collections.sort(list A);

我需要根据对应的ID获取列表B。在这种情况下我应该怎么做?

一种可能的方法是:

创建一个
并向其中添加所需的
属性。然后使用
比较器
根据需要进行排序

我已经给出了如何根据班级的
id
name
进行排序的示例
Student

public class Student {
    private int id;
    private String name;

    public Student(int id, String name) {
        this.id=id;
        this.name=name;
    }
    @Override
    public String toString() {
        return this.id+"-"+this.name;
    }

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

    public static void main(String[] args) {
        List<Student> stu = new ArrayList<>();
        stu.add(new Student(4,"Alaska"));
        stu.add(new Student(5,"Barlin"));
        stu.add(new Student(9,"America"));
        stu.add(new Student(2,"India"));
        Comparator<Student> byId = (Student s1,Student s2)->(s1.id)-(s2.id); //java 8 lambda expression
        stu.sort(byId);
        System.out.println(stu);
        //Way-1 -java 8 lambda expression
        Comparator<Student> byName = (Student s1,Student s2)->s1.getName().compareTo(s2.getName());
         //Way-2 - java 8 method reference 
        //Comparator<Student> byName = Comparator.comparing(Student::getName);
        stu.sort(byName);
        System.out.println(stu);

    }
}
公共班级学生{
私有int-id;
私有字符串名称;
公立学生(整数id,字符串名称){
这个.id=id;
this.name=name;
}
@凌驾
公共字符串toString(){
返回this.id+“-”+this.name;
}
公共字符串getName(){
返回此.name;
}
公共静态void main(字符串[]args){
List stu=new ArrayList();
学生增补(新学生(4,“阿拉斯加”);
学生增补(新学生(5名,“巴林”);
学生增补(新学生(9,“美国”);
学生增补(新学生(2,“印度”);
比较器byId=(学生s1,学生s2)->(s1.id)-(s2.id);//java 8 lambda表达式
stu.sort(byId);
系统输出打印(stu);
//Way-1-java 8 lambda表达式
比较器byName=(学生s1,学生s2)->s1.getName().compareTo(s2.getName());
//方式2-Java8方法参考
//Comparator byName=Comparator.comparing(学生::getName);
排序(按名称);
系统输出打印(stu);
}
}
[2-印度,4-阿拉斯加,5-巴林,9-美国]

[4-阿拉斯加,9-美洲,5-巴林,2-印度]


实现这一点的一种可能方法是:

创建一个
并向其中添加所需的
属性。然后使用
比较器
根据需要进行排序

我已经给出了如何根据班级的
id
name
进行排序的示例
Student

public class Student {
    private int id;
    private String name;

    public Student(int id, String name) {
        this.id=id;
        this.name=name;
    }
    @Override
    public String toString() {
        return this.id+"-"+this.name;
    }

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

    public static void main(String[] args) {
        List<Student> stu = new ArrayList<>();
        stu.add(new Student(4,"Alaska"));
        stu.add(new Student(5,"Barlin"));
        stu.add(new Student(9,"America"));
        stu.add(new Student(2,"India"));
        Comparator<Student> byId = (Student s1,Student s2)->(s1.id)-(s2.id); //java 8 lambda expression
        stu.sort(byId);
        System.out.println(stu);
        //Way-1 -java 8 lambda expression
        Comparator<Student> byName = (Student s1,Student s2)->s1.getName().compareTo(s2.getName());
         //Way-2 - java 8 method reference 
        //Comparator<Student> byName = Comparator.comparing(Student::getName);
        stu.sort(byName);
        System.out.println(stu);

    }
}
公共班级学生{
私有int-id;
私有字符串名称;
公立学生(整数id,字符串名称){
这个.id=id;
this.name=name;
}
@凌驾
公共字符串toString(){
返回this.id+“-”+this.name;
}
公共字符串getName(){
返回此.name;
}
公共静态void main(字符串[]args){
List stu=new ArrayList();
学生增补(新学生(4,“阿拉斯加”);
学生增补(新学生(5名,“巴林”);
学生增补(新学生(9,“美国”);
学生增补(新学生(2,“印度”);
比较器byId=(学生s1,学生s2)->(s1.id)-(s2.id);//java 8 lambda表达式
stu.sort(byId);
系统输出打印(stu);
//Way-1-java 8 lambda表达式
比较器byName=(学生s1,学生s2)->s1.getName().compareTo(s2.getName());
//方式2-Java8方法参考
//Comparator byName=Comparator.comparing(学生::getName);
排序(按名称);
系统输出打印(stu);
}
}
[2-印度,4-阿拉斯加,5-巴林,9-美国]

[4-阿拉斯加,9-美洲,5-巴林,2-印度]

公共A类{
公共静态void main(字符串[]args){
List idList=new ArrayList();
添加(5);
添加(2);
添加(4);
添加(1);
添加(3);
列表名称列表=新的ArrayList();
姓名列表。添加(“Priya”);
姓名列表。添加(“Pooja”);
姓名列表。添加(“Sneha”);
姓名列表。添加(“Ritesh”);
姓名列表。添加(“Nikita”);
Map Map=newhashmap();
for(int i=0;i
}

公共A类{
公共静态void main(字符串[]args){
List idList=new ArrayList();
添加(5);
添加(2);
添加(4);
添加(1);
添加(3);
列表名称列表=新的ArrayList();
姓名列表。添加(“Priya”);
姓名列表。添加(“Pooja”);
姓名列表。添加(“Sneha”);
姓名列表。添加(“Ritesh”);
姓名列表。添加(“Nikita”);
Map Map=newhashmap();
for(int i=0;i

}无需新列表进行排序。因为它们是映射的,所以可以直接使用

public class A {

public static void main(String[] args) {

List<Integer> idList = new ArrayList<Integer>();
idList.add(5);
idList.add(2);
idList.add(4);
idList.add(1);
idList.add(3);

List<String> nameList = new ArrayList<String>();
nameList.add("Priya");
nameList.add("Pooja");
nameList.add("Sneha");
nameList.add("Ritesh");
nameList.add("Nikita");

Map<Integer, String> map = new HashMap<Integer, String>();
for(int i = 0; i < idList.size(); i++) {
  map.put(idList.get(i), nameList.get(i));   
}


Collection.sort(idList);
nameList.clear();

for(int i = 0; i < map.size(); i++) {
  nameList.add(map.get(idList.get(i)));
}



}
公共A类{
公共静态void main(字符串[]args){
List idList=new ArrayList();
添加(5);
添加(2);
添加(4);
添加(1);
添加(3);
列表名称列表=新的ArrayList();
姓名列表。添加(“Priya”);
姓名列表。添加(“Pooja”);
姓名列表。添加(“Sneha”);
姓名列表。添加(“Ritesh”);
姓名列表。添加(“Nikita”);
Map Map=newhashmap();
for(int i=0;i
无需新列表进行排序。由于它们已映射,因此可以直接使用

public class A {

public static void main(String[] args) {

List<Integer> idList = new ArrayList<Integer>();
idList.add(5);
idList.add(2);
idList.add(4);
idList.add(1);
idList.add(3);

List<String> nameList = new ArrayList<String>();
nameList.add("Priya");
nameList.add("Pooja");
nameList.add("Sneha");
nameList.add("Ritesh");
nameList.add("Nikita");

Map<Integer, String> map = new HashMap<Integer, String>();
for(int i = 0; i < idList.size(); i++) {
  map.put(idList.get(i), nameList.get(i));   
}


Collection.sort(idList);
nameList.clear();

for(int i = 0; i < map.size(); i++) {
  nameList.add(map.get(idList.get(i)));
}



}
公共A类{
公共静态void main(字符串[]args){
List idList=new ArrayList();
添加(5);
添加(2);
添加(4);
添加(1);
添加(3);
列表名称列表=新的ArrayList();
姓名列表。添加(“Priya”);
姓名列表。添加(“Pooja”);
姓名列表。添加(“Sneha”);
姓名列表。添加(“Ritesh”);
姓名列表。添加(“Nikita”);
Map Map=newhashmap();
for(int i=0;i
us