这里是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;
}
最佳答案
试试这个:
public boolean remove (String license){ //remove person with specific license from list
Iterator<Person> personIterator = person.iterator();
boolean remove = false;
while(personIterator.hasNext(){
Person personInstance = personIterator.next();
if(personInstance.getLicense().equals(license))){
personIterator.remove();
remove = true;
break;
}
}
return remove;
}
关于java - 从 ArrayList 中删除一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41926264/