在 Java 中设置实现中的 add() 方法不起作用



我正在尝试用Java中的ArrayList实现我自己的Set。我正在测试add()方法,不知何故它不会在 Set 中添加元素。我知道如果在 ArrayList 中添加了一个元素,那么List.add(input)将返回 true,所以也许问题就在那里。有人可以帮助我了解我做错了什么吗? 这是 Setadd()方法的实现:

import java.util.ArrayList; import java.util.Collection;

public class Set<E> implements Collection<E> {
private ArrayList<E> List = new ArrayList<>();
public boolean add(E input) {
if (contains(input)) {
return false;
}
return List.add(input);
}

这是我运行的测试方法:

import java.util.*;
public class TestSet {
public static Set<Integer> set = new Set<Integer>();
public static void main(String[] args) {
System.out.println("Enter a set :");
Scanner userInput = new Scanner(System.in);
set = new Set<Integer>();
set.add(userInput.nextInt());
System.out.println(set);
}  

运行该方法后我在控制台上得到的输出是:

Enter a set :
1
Set@677327b6

似乎您没有使用toString方法或未正确使用它,您需要使用:

public class Set<E> implements Collection<E> {
private ArrayList<E> list = new ArrayList<>();
...
@Override
public String toString() {
return list.toString();
}
}

相关内容

最新更新