用Java打印列表

时间:2018-11-03 18:12:15

标签: java

我是Java的新手。我不确定为什么行my2.print_list();仅打印对象my2。我想每次打印整个对象列表。我将每个对象添加到构造函数中的列表中。我90%确信函数for中的print_list循环是好的。编译器显示没有问题。我将感谢您的帮助。

public class Main {

        public static void main(String[] args) {
        // write your code here
           rectangle my = new rectangle(5);
           rectangle my1 = new rectangle(3,6);
           rectangle my2 = new rectangle(10,7);

           System.out.println( my2.getCounter());
           my2.print_list(); ////////////////////<- described line

        }
    }

///我的课堂矩形

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

    public class rectangle {
        public static int counter =0;
        public int x;
        public int y;
        public List<rectangle> List = new ArrayList<rectangle>();

        public rectangle(int x, int y) {
            this.x = x;
            this.y = y;
            System.out.println("Rec");
            List.add(this);
            counter++;
        }
        public rectangle(int x) {
            this.x = x;
            this.y = x;
            System.out.println("Sqr");
            List.add(this);
            counter++;
        }

        @Override
        public String toString() {
            return "x->"+x+" y->"+y+" Field: "+(x*y);
        }

        public void print_list()
        {
            for(rectangle x : List)
            {
                System.out.println(x);
            }
        }

2 个答案:

答案 0 :(得分:0)

您的课程的每个实例都有其自己的实例List。如果应该共享,请设置为static(这是填充List的唯一方法)。另外,请重命名变量List(它看起来与接口java.util.List完全一样,完全)。另外,没有理由将其设置为public

private static List<rectangle> myList = new ArrayList<rectangle>();

然后像这样更改print_list

public void printList()
{
    for(rectangle x : myList)
    {
        System.out.println(x);
    }
}

此外,类名称应为Rectangle(遵循Java命名约定)。

答案 1 :(得分:0)

更改

public List<rectangle> List = new ArrayList<rectangle>();

public static List<rectangle> List = new ArrayList<rectangle>();

所以只有一个List实例。