需要基于其他字符串数组对数组对象进行排序并删除不匹配的对象

Dhirendra Sengar:

需要基于其他字符串数组对数组对象进行排序并删除不匹配的对象

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;


public class Test {
    String name;
    int no;
    public String getName() {
        return name;
    }
    public int getNo() {
        return no;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void setNo(int no) {
        this.no = no;
    }
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", no=" + no +
                '}';
    }

    public static Test createStudent(String name, int no) {
        Test student = new Test();
        student.setName(name);
        student.setNo(no);
        return student;
    }


    public static void sortStudentInArrayList(List<String> scppriority) {
        List<Test> students = new ArrayList<>();
        Test student1 = createStudent("SCP1", 3);
        students.add(student1);
        Test student2 = createStudent("SCP2", 1);
        students.add(student2);
        Test student3 =  createStudent("SCP3", 5);
        students.add(student3);
        Test student4 = createStudent("SCP4", 2);
        students.add(student4);
        
       
        //students.retainAll(scppriority);
        System.out.println("Original students list: " + students);
        
       
        Collections.sort(students, Comparator.comparing(s -> scppriority.indexOf(s.getName())));

    }

    public static void main(String[] args) {
        
        List<String> string2 = new ArrayList<String>();
        string2.add("SCP2");
        string2.add("SCP3");

               

        sortStudentInArrayList(string2);
}
}

<**输出原始学生列表:[学生{name ='SCP1',否= 3},学生{name ='SCP4',否= 2},学生{name ='SCP2',否= 1},学生{ name ='SCP3',no = 5}]需要从学生列表中删除不匹配项,在此先感谢**>

Sabareesh Muralidharan:

试试这个,

List<Test> result = students.stream()
        .filter(student -> scppriority.contains(student.getName()))
        .sorted(Comparator.comparing(s -> scppriority.indexOf(s.getName())))
        .collect(Collectors.toList());
System.out.println("Original students list: " + result);

输出:

Original students list: [Student{name='SCP2', no=1}, Student{name='SCP3', no=5}]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

对数字的字符串数组列表进行排序

按字符串对数组进行排序

自定义排序数组以基于字符串对对象进行排序-Javascript

根据数组对象对数组进行排序

按对象属性值对数组进行排序,该属性值与第二个数组中的字符串相同

使用其他数组对对象数组进行排序

根据对象数组对字符串数组进行排序

如何基于每个对象中的字符串属性数组对数组中的对象进行深层比较/匹配?

对数组中的字符串项列表进行排序

Javascript对象数组,基于部分字符串或子字符串进行搜索匹配

在数组对象内部对数字数组进行排序,同时保持其他数组的顺序与排序后的数字数组的顺序相同

基于存储在字符串数组js中的键的自定义排序/排序对象数组

Java:对数字字符串数组进行排序

角度过滤器,将重复ng的对象中的字符串数组与字符串数组进行比较,并过滤掉不匹配的对象

在Javascript中对字符串值对数组进行排序

如何按字符串值对数组中的对象数组进行排序?

如果对象字符串与单独数组中的字符串匹配,则删除对象

数组从其他数组中删除与对象匹配的对象

按字符串值对对象数组进行排序

从db中按字符串对数组进行排序

对数组中的字符串进行排序

根据其字符串属性之一对数组中的对象重新排序?

使用其他数组对数组对象进行排序

JavaScript中基于字符串+数值对对象数组进行排序

通过包含字符串对对象数组进行排序

基于其他数组js对数组进行排序

使用 jq 对数组中的字符串进行排序

从对象对数组进行排序

如果匹配字符串,则删除 json 数组对象项