我想做的是只从对象表中删除一个对象,如果我想要删除的对象有id我放入params。
让我们进入代码:
public static animals[] supprimerAnimals(int identifiant, animals[] liste){
animals[] newOne = new animals[0];
for(int i = 0; i < liste.length; i++){
}
return newOne;
}
此方法将在params中接收id和table。 在表格中,我们有对象......让我们告诉他们动物。这是我们可以拥有的对象列表:
liste[0] = animals(1, "cat", 6)
liste[1] = animals(2, "dog", 4)
这里是构造函数:
animals(int id, String type, int age);
所以我们需要得到所有解决方案。
现在让我们进入一个例子...... 如果我这样做:
animals[] zoo = supprimerAnimals(2, liste);
我需要动物园包含这个:
zoo[0] = animals(1, "cat", 6);
你们能帮我们走正确的路吗? 我正在锁定我必须创建一个新表的事实,如果id将存在于旧表中,我现在甚至都不会...所以我无法修复新表的大小......
谢谢你们
答案 0 :(得分:1)
animals[]
表示有一个名为animals的java对象,该数组中的项目具有此DataType&#34; 动物&#34;
下面我创建了一个名为Animal的Object,这是一个有两种方法的例子
public class Animal{
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
}
现在你可以在其中实现deleteMethods,例如:
public static Animal[] removeAnimal(Animal[] animals, int id) {
List<Animal> list = Arrays.asList(animals);
for(Animal item : animals)
if( item.getId() == id )
list.remove(item);
return list.toArray(animals);
}
OR
public static Animal[] removeAnimal2(Animal[] animals, int id) {
Animal[] arr = new Animal[animals.length-1];
int i = 0;
for(Animal item : animals){
if( item.getId() != id ){
try{
arr[i]=item;
}catch(Exception ex){
ex.printStackTrace();
}
}
}
return arr;
}
答案 1 :(得分:0)
看看这是否符合您的需要。
public static animals[] supprimerAnimals(int identifiant, animals[] liste) {
int supprimer = -1;
for (int i = 0; i < liste.length; i++) {
if (liste[i].getId() == identifiant) {
supprimer = i;
break;
}
}
if (supprimer < 0) {
return liste;
}
animals[] nouveauListe = new animals[liste.length - 1];
for (int i = 0; i < supprimer; i++) {
nouveauListe[i] = liste[i];
}
for (int i = supprimer + 1; i < liste.length; i++) {
nouveauListe[i - 1] = liste[i];
}
return nouveauListe;
}
注意强> 按惯例,Java类名称是PascalCase,并且是单数,而不是复数
答案 2 :(得分:0)
看看这个。我使用了list而不是Arrays。
package com.Hangman;
import java.util.ArrayList;
import java.util.List;
public class Test5 {
public static void main(String[] args) {
List zoo= new ArrayList();
Animal animal= new Animal(1,"cat",01);
zoo.add(animal);
animal= new Animal(6,"dog",02);
zoo.add(animal);
animal= new Animal(3,"mouse",03);
zoo.add(animal);
animal= new Animal(8,"rabbit",04);
zoo.add(animal);
animal= new Animal(5,"lion",05);
zoo.add(animal);
System.out.println("List of Animals in zoo");
System.out.println(zoo);
System.out.println("Animal to be removed from zoo is having id 3");
removeFromZoo(zoo, 3);
System.out.println("Animals in zoo after removal");
System.out.println(zoo);
}
static void removeFromZoo(List zoo,int id){
Animal animal= new Animal(id,null, 0);
zoo.remove(animal);
}
}
class Animal{
int id;
String type;
int age;
public Animal(int id, String type, int age) {
super();
this.id = id;
this.type = type;
this.age = age;
}
@Override
public String toString() {
return ""+this.type;
}
@Override
public boolean equals(Object animal) {
if(animal instanceof Animal){
return this.id==((Animal) animal).id;
}else
return false;
}
}