删除方法中表的元素

时间:2014-12-11 02:06:18

标签: java object methods

我想做的是只从对象表中删除一个对象,如果我想要删除的对象有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将存在于旧表中,我现在甚至都不会...所以我无法修复新表的大小......

谢谢你们

3 个答案:

答案 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;   

    }

}