【发布时间】:2023-04-06 07:38:02
【问题描述】:
这里是 java 新手,我无法理解数组。我需要从ArrayList 中删除一个项目,我不知道如何实际编码。我的程序读取一个.csv 文件,从主类传递一个字符串到第二个类,一旦在第二个类中,我需要搜索数组列表并删除该字符串,如果找到它并返回true,表示它已被删除。任何帮助表示赞赏。
二等
public class PersonLogImpl {
private boolean remove;
private boolean isLicenseUnique;
private boolean add;
private final ArrayList<Person> person;
public PersonLogImpl() {
this.person = new ArrayList<>();
}
public ArrayList<Person> getPersonLog(){
return Person;
}
public boolean add(Person obj){ //add person object to ordered list
person.add(obj);
return add;
}
public boolean remove (String license){ //remove person with specific license from list
if(person.remove(person.equals(add))){
remove = true;
}
return remove;
}
编辑: 人物类
public class Person{
private String licenseNumber;
public Person(){
}
public Person(String licenseNumber){
this.licenseNumber = licenseNumber;
}
public String getLicenseNumber(){
return licenseNumber;
}
public void setLicenseNumber(String licenseNumber){
this.licenseNumber = licenseNumber;
}
@Override
public int hashCode(){
int hash = 7;
return hash;
}
@Override
public boolean equals(Object obj){
if (this == obj){
return true;
}
if (obj == null){
return false;
}
if (getClass() != obj.getClass()){
return false;
}
final Person other = (Person) obj;
if (!Objects.equals(this.licenseNumber, other.licenseNumber)){
return false;
}
return true;
}
@Override
public String toString(){
return "Person{" + "licenseNumber=" + licenseNumber + '}';
}
public boolean validateLicense(){
boolean retValue = false;
if ((this.licenseNumber.matches("^[a-zA-Z]{2}\\d{7}$")))
retValue = true;
return retValue;
}
【问题讨论】:
-
我认为你的实施有问题
-
例如
person.equals(add)是什么意思?比较object和boolean? -
person.equals(add) 如果被添加则返回 true
-
@Newb2Java 怎么样?您是否使用自己的
ArrayList实现并覆盖了.equals(Object obj)方法?请edit 你的问题包括Person类。 -
@Newb2Java 你应该看看
ArrayList's documentation 尤其是remove(Object o)部分。您的remove(String license)方法可以像return person.remove(license);一样简单
标签: java arrays string oop arraylist