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 楼答案
可以重写rank类中的比较函数
从比较器函数中,需要返回一个整数。对于升序或降序,该整数可以是正整数或负整数;对于相等整数,该整数可以是0。您需要提出排列对象的逻辑