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

问题描述 投票:-3回答:1

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

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

我很久以前就被困在这里。很想在这里建议如何解决这个问题?我是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;



    }
    }
*/
java arraylist match ranking
1个回答
0
投票

您可以覆盖排名类中的比较函数。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.