java - 打印出 arraylist 元素时出错

标签 java arraylist

这是一个添加和打印 worker 的小程序。当调用方法进行打印时,我收到的输出中包含相同元素的次数与我添加的元素数一样多。我不明白我的错误在哪里。

public class Radnik {
    static List<Radnik> workers = new ArrayList<>();
    private String name;


    public static void main (String []args) {
        Radnik.add();
        for(Radnik r : workers) {
            System.out.println(r);
        }
    }
    public static void add () {
        String name;
        String answer;
        do {
            Scanner s = new Scanner(System.in);
            System.out.println("name");
            name = s.next();
            Radnik f = new Radnik();
            workers.add(f);
            System.out.println("More");
            answer = s.next();
        } while (answer.equals("yes"));
    }
} 

最佳答案

永远不要将name 设置为Radnik
我会添加构造函数 Radnik(String name) 来初始化 name 并添加一个 getter 和 setter。

System.out.println(r) 只会打印废话,因为它调用了 Object.toString() .您必须覆盖 toString() 或调用其他方法来输出有意义的内容。


public class Radnik {
    static List<Radnik> workers = new ArrayList<>();
    private String name;


    public Radnik(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    @Override
    public String toString() {
        return "Radnik=[name=\""+name+"\"]";
    }

    public static void main (String []args) {
        Radnik.add();
        for(Radnik r : workers) {
            System.out.println(r);
        }
    }
    public static void add () {
        String name;
        String answer;
        do{
            Scanner s = new Scanner(System.in);
            System.out.println("name");
            name = s.next();
            Radnik f = new Radnik(name);
            workers.add(f);
            System.out.println("More");
            answer = s.next();
        } while (answer.equals("yes"));
    }
} 

关于java - 打印出 arraylist 元素时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48370931/

相关文章:

java - 为什么不间断空格不是Java中的空白字符?

java - 在针对 Gingerbread 的应用程序中使用 ICS 函数

java - 将CSV文件中的数据读取到ArrayList中并显示在XY图表中

java - java 二维数组列表

java - exitEveryRule 是 Antlr4 中捕获规则数据(源行)的最佳位置吗?

java - 自定义函数: apply in Stream

Java修改ArrayList上的Class元素

带有定位的 ArrayList 中的 Java ForEach

java - 正确使用log4j和异常

android - 从android kotlin中的文件夹获取图像列表