如果您有一个数组(不能是ArrayList
),将用于存储“狗的类型”,“狗的名称”和“狗的年龄”等特定的事物。然后你创建一个显然会输入这些元素的对象。但是,如果用户想要删除整个对象(所有输入名称,年龄和年龄),那么他们可以通过删除狗的年龄来完成此操作,然后全部将被删除。这可能不使用ArrayList?使用对象从数组中删除
0
A
回答
0
你可以这样做。它并不是很好的Java方法,但它可以工作,并且可以轻松地重构它。
在这里你有狗类:
public class Dog {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public static Dog[] removeByName(Dog[] list, String name) {
int counter = 0;
Dog[] result = new Dog[3];
for (int i = 0; i < list.length; i++) {
if (!list[i].getName().equals(name)) {
result[counter] = list[i];
counter++;
}
}
return result;
}
}
在这里你可以看到如何使用它:
public class NotArrayList {
public static void main(String[] args) {
Dog[] dogs = new Dog[3];
Dog d1 = new Dog();
d1.setName("aaa");
d1.setAge(1);
Dog d2 = new Dog();
d2.setName("bbb");
d2.setAge(1);
Dog d3 = new Dog();
d3.setName("ccc");
d3.setAge(1);
dogs[0] = d1;
dogs[1] = d2;
dogs[2] = d3;
Dog[] res = Dog.removeByName(dogs, "aaa");
for (Dog d : res) {
if (d != null)
System.out.println(d.getName());
}
}
}
0
如果我正确理解你的问题,那么我想你可以有一个删除方法通过将该特定索引设置为null
,从数组中删除Dog
对象引用。
public void removeDog(Dog[] dogArray, int age) {
for(int i = 0; i < dogArray.length; i++) {
if(dogArray[i].getAge() == age){
dogArray[i] = null; // removing the dog object by making it null
break;
}
}
}
您需要注意的是,以下是对上述方法所做的假设。
- 数组大小不变。只是引用了现在删除的
Dog
对象的索引现在是null
。 - 如果存在多个年龄相同的
Dog
对象,则会先删除数组中存在的Dog
对象(按索引)。 dogArray
参数在不是实例变量的情况下传递,否则可以避免。- 年龄是
int
类型,并且Dog
类拥有公共吸气剂,getAge()
。 - 此方法不会返回任何内容,但可以根据您的需要返回
boolean
(删除状态)或Dog
(删除的Dog对象)。
相关问题
- 1. 从对象数组中删除对象
- 2. 从数组中删除动态对象从DOM中删除
- 3. 只用对象的引用从数组中删除对象
- 4. 无法从数组中删除对象
- 5. 从数组中删除stdClass对象
- 6. 从数组中删除角对象 - $$ hashKey?
- 7. 从json对象中删除json数组
- 8. 从数组中删除对象Iphone
- 9. MongoDB:从数组中删除对象
- 10. 从数组中删除一个对象?
- 11. 从数组中删除对象onclick
- 12. 从数组中删除JSON对象
- 13. 从数组中删除对象
- 14. JavaScript - 从对象中删除数组
- 15. 从数组中删除对象
- 16. 从嵌套数组中删除对象
- 17. 从对象中删除空数组-c
- 18. 从数组中删除对象
- 19. 从JavaScript数组中删除对象?
- 20. 从PHP JSON对象中删除数组
- 21. 从数组中删除对象
- 22. 从数组中删除所选对象
- 23. 如何使用lodash从数组中删除对象?
- 24. 使用变量属性值从javascript数组中删除对象
- 25. 如何使用jquery从数组中删除重复的对象
- 26. 使用Javascript:从对象的数组中删除的元素
- 27. 使用javascript从数组中删除对象?
- 28. 如何从jquery中的对象数组中删除对象?
- 29. 从java中的对象数组中删除对象
- 30. 从数组中删除对象并插入到其他数组中使用Angular
可以更改数组元素以使其具有null值,但创建后无法更改数组的长度*。 –
我在说假设@KamleshArya,因为这是我想要在我的新学习曲线项目中实现的=)只是对是否可以使用 – user3443834
感兴趣。数组包含“Dog”对象是否正确?因为你的这个陈述*如果你有一个数组(不能是ArrayList),它将被用来存储诸如“狗的类型”,“狗的名字”和“狗的年龄”等具体的东西。*是相当混乱的。 – SudoRahul