java 接口方法使用

java interface methods usage

嗨,我得到了以下接口,我需要使用这个接口来实现包,我对如何使用这些方法有点困惑,任何 help/hint 将不胜感激。我需要将物品添加到包中,它应该能够接受重复的物品。然后我删除了一个项目并找到了一个项目。

public interface Things<T> extends Iterable<T> {
    public int size();
    public boolean add(T x);
    public T remove(T x);
    public T find(T x);
    public void clear();
}
//Implementing thing using bag
public class Bag<T> implements Things<T> {

    @Override
    public int size() {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public String add(T x) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public String remove(T x) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public String find(T x) {
        // TODO Auto-generated method stub
        return null;
    }

}


public class ThingsDemo {


    public static void main(String args[])

    {
        How to I use add(), remove(), and find method here?


    }

}

像这样:

public interface Things<T> extends Iterable<T> {
    public int size();
    public boolean add(T x);
    public T remove(T x);
    public T find(T x);
    public void clear();
}
//Implementing thing using bag
public class Bag<T> implements Things<T> {
    private ArrayList<T> list = new ArrayList<T>();

    @Override
    public int size() {
        return list.size();
    }

    @Override
    public boolean add(T x) {
        list.add(x);
    }

    @Override
    //It's weird why the remove method returns T
    //Sine you already pass x of type T as parameter
    public T remove(T x) {
        list.remove(x);
        return x;
    }

    @Override
    public T find(T x) {
        //Since you already know x, what is find() searching for?
        return null;
    }

}


public class ThingsDemo {


    public static void main(String args[])

    {
        Bag<String> bag = new Bag<>();
        bag.add("cat");  
        bag.remove("cat");
    }
}

给你。你不应该在包 class 中使用字符串 return 类型。它应该类似于您在接口内部声明的内容。请参阅示例的添加方法并类似地实现删除和其他方法。

public interface Things<T> extends Iterable<T> {
    public int size();
    public boolean add(T x);
    public T remove(T x);
    public T find(T x);
    public void clear();
}

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Bag<T> implements Things<T> {

List<T> data = new ArrayList<T>();

@Override
public int size() {
    data.size();
}

@Override
public boolean add(T x) {
    data.add(x);
    return false;
}

@Override
public T remove(T x) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public T find(T x) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public void clear() {

}

@Override
public Iterator<T> iterator() {
    return null;
}
}

public class ThingsDemo {


public static void main(String args[])

{
    Things<String> things = new Bag<>();

    things.add("something");
    System.out.println(things.size());
    things.remove("something");
    System.out.println(things.size());

   }

}