我需要根据对象内部的属性将对象添加到有序的 ArrayList。我知道如何使用 .add 方法添加对象,但我不知道如何使用 compareTo() 方法为它搜索正确的位置。如果对象包含某个字符串,我还需要从 ArrayList 中删除一个对象,但我无法弄清楚如何从 ArrayList 访问对象属性。
房地产经纪人对象
/**
* Constructor for Realtor object using parameter
* @param readData - array of data from line
*/
public Realtor(String[]readData){
licenseNumber = readData[2];
firstName = readData[3];
lastName = readData[4];
phoneNumber = readData[5];
commission = Double.parseDouble(readData[6]);
}
RealtorLogImpl
public class RealtorLogImpl {
private ArrayList<Realtor> realtorList;
/**
* Add Realtor object to ordered list
* @param obj - Realtor object
*/
public void add(Realtor obj){
//needs to be added into correct place depending on Realtor licenseNumber
realtorList.add(obj);
}
/**
* Delete Realtor object from list if license matches
* and return true if successful
* @param license
* @return
*/
public boolean remove (String license){
//need to remove Realtor with specific licenseNumber and return true if successful
}
最佳答案
我假设您使用的是 java 8。其中一些内容尚未在 java 7 中实现,因此请记住这一点。
首先,要删除我建议使用 removeif()
method 的项目在数组列表上。这需要一个 lambda 表达式,它可能类似于 x -> x.getString().equals("someString")
。
其次,您可以将对象添加到数组中,然后简单地 sort之后的数组。您只需要编写一个比较器来对其进行排序。
关于java - 添加和删除有序 Arraylist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44101773/