我有一個ArrayList的狗。如果Fluffy在ArrayList中,我想將其名稱更改爲Fido。如果它不在ArrayList中,我想添加它,然後將其名稱更改爲Fido。如何更改一個對象,如果它在一個ArrayList中?
因此,我可以檢查Fido是否存在於ArrayList中,但是如何檢索它以便我可以進行更改?以下是我最近的一次。我要尋找的線沿線的東西dogs.getElementEqualTo(new Dog("Fido"));
import java.util.ArrayList;
public class Dog {
public static void main(String[] args) {
ArrayList<Dog> dogs = new ArrayList<>();
dogs.add(new Dog("Fido"));
Dog dog = new Dog("Fido");
if (dogs.contains(dog)) {
dog.name = "Fluffy";
}
System.out.println(dogs.get(0).name); //prints Fido
}
String name;
public Dog(String name) {
this.name = name;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Dog)) return false;
Dog dog = (Dog) o;
return !(name != null ? !name.equals(dog.name) : dog.name != null);
}
@Override
public int hashCode() {
return name != null ? name.hashCode() : 0;
}
}
編輯:
我試圖改變我的主要方法,這一點,但沒有奏效:
ArrayList<Dog> dogs = new ArrayList<>();
dogs.add(new Dog("Fido"));
Dog dog = new Dog("Fido");
if (dogs.contains(dog)) {
dogs.get(dogs.indexOf(dog)).name = "Fluffy";
}
System.out.println(dogs.get(0).name);
該代碼的作用是什麼?顯示輸出。 –
只是循環的元素,並檢查每一個(或只是直到第一個)。 –
@SotiriosDelimanolis darn。會做。我希望有一個更漂亮的方式,但這將工作。謝謝! – Evorlor