如何将Arraylist传递给另一个类

时间:2018-12-20 07:13:52

标签: java arraylist

你好,我是Java的初学者,这是我的问题:我有第一堂课,代码:

import java.util.ArrayList;

public class A {

    ArrayList<String> a1;

    public A (ArrayList<String> a1) {
        this.a1 = a1;
        a1.add("Winter");
        a1.add("Spring");
        a1.add("Summer");
    }

    public ArrayList<String> getString() {
        return a1;
    }

}

第二课,代码:

import java.util.ArrayList;

public class B {

    ArrayList<String> b1;

    public void A (ArrayList<String> b1) {
        this.b1 = b1;
    }

    public ArrayList<String> getString() {
        b1.addAll(a1);
        return b1;
    }

}

和带有代码的三等班

import java.util.ArrayList;

public class C {

    public static void main(String[] args) {
        ArrayList<String> j1 = new ArrayList<String>();

        A a1 = new A(j1);
        B b1 = new B();

        System.out.println(a1.getString());
        System.out.println(b1.getString());
    }
}

如何将数组列表从A类传递到B类?

1 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,那么您希望b1.getString()接收a1的数组。

首先:您应该在代码中真正更改方法和变量的名称,以减少误导,就像Amaud在您的评论中所建议的那样。

第二:您需要方法的进入方式才能将其传递给其他人。

请参阅下面的更改(我保留名称,使其与您的代码相似,但我坚持要更改它们):

A类 (保持不变,仅出于完成目的而包括在内)

public class A {
    ArrayList<String> a1;

    public A (ArrayList<String> a1) {
        this.a1 = a1;
        a1.add("Winter");
        a1.add("Spring");
        a1.add("Summer");
    }

    public ArrayList<String> getString() {
        return a1;
    }
}

B类 在getString中添加了参数

public class B {
    ArrayList<String> b1;

    public void A (ArrayList<String> b1) {
        this.b1 = b1;
    }

    public ArrayList<String> getString(ArrayList<String> a1) {
        b1.addAll(a1);
        return b1;
    }
}

C类

public class C {
    public static void main(String[] args) {
        ArrayList<String> j1 = new ArrayList<String>();

        A a1 = new A(j1);
        B b1 = new B();

        System.out.println(a1.getString());
        System.out.println(b1.getString(a1.getString()));
    }
}

还可以选择仅在最后一行传递j1而不是a1.getString(),因为在此示例中它们是相同的。看起来像:

        System.out.println(b1.getString(j1));