有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

arraylist如何在java中根据用户输入对内存中匹配的行进行排序?

我在ArrayList中有10行员工详细信息(如员工技能、期望工资、工作时间)。现在,当用户从前端输入员工详细信息时,所有行都应该根据与输入的完全匹配进行排序

我曾尝试使用比较器,但它用于比较内存中的两个对象。。但是我想将内存中的所有对象与用户输入进行比较

我被困在这里很久了。想听听你对如何解决这个问题的建议吗?我是java新手

以下是我所做的。这段代码的后半部分充满了错误和不完整,因为我没有找到正确的逻辑

import java.util.*;
import java.lang.*;
import java.io.*;

public class rank {
 int hours,price;
 String skills,domain,location;

public rank ( int hours, int price, String skills, String domain, String location)
{
this.hours= hours;
this.price=price;
this.skills= skills;
this.domain= domain;
this.location= location;
}
public String toString()
{
    return this.hours + " " + this.price+
                       " " + this.skills + " " + this.domain + " " + this.location;
}


public static void main(String[] args)
{

    ArrayList<rank> ar = new ArrayList<rank>();
    ar.add(new rank(20,30,"java,oracle","fin","hyd"));
    ar.add(new rank(30,40,"oracle","fin","hyd"));
    ar.add(new rank(10,40,"oracle","fin","hyd"));
    ar.add(new rank(50,40,"java","fin","chn"));

    System.out.println("unsorted");
    for (int i=0;i<ar.size();i++)
        System.out.println(ar.get(i));

    Scanner input = new Scanner(System.in);
    int hours1 = input.nextInt();
    int price1= input.nextInt();
    String skills1= input.nextLine();
    String domain1= input.nextLine();
    String location1=input.nextLine();



    for (int j=0;j<ar.size();j++)
    {
    if (input == (ar.rank))

    }
    /*System.out.println("sorted");
    Collections.sort(ar, new rankbyhours());
    for (int i=0;i<ar.size();i++)
        System.out.println(ar.get(i));
        */  
    }

}

/*class rankbyhours implements Comparator
{
    public int compare(Object o1, Object o2)
    {
        rank r1 = (rank)o1;

        input i1 = (input)o2;



    }
    }
*/

共 (1) 个答案

  1. # 1 楼答案

    可以重写rank类中的比较函数

    // Overriding the compare method to sort
    public int compare(rank r1, rank r2) {
       return r1.price - r2.price;
    }
    

    从比较器函数中,需要返回一个整数。对于升序或降序,该整数可以是正整数或负整数;对于相等整数,该整数可以是0。您需要提出排列对象的逻辑