从多个类访问和修改一个类中的ArrayList / TreeSet

时间:2019-02-07 17:42:46

标签: java android arrays arraylist

我是Java的新手,我正在尝试访问与其他类不同类的ArrayList和TreeSet。 我知道这种从一个班级访问它的方式。

这是我有TreeSet的班级

 public class Gestor {
        private TreeSet<User> gestorTSusers;

        public Gestor (){
            this.gestorTSusers = new TreeSet<>();
        }          

        public TreeSet<User> getGestorTSusers() {
            return gestorTSusers;
        }

        public void setGestorTSusers(TreeSet<User> gestorTSusers) {
            this.gestorTSusers = gestorTSusers;
        }
    }

现在我知道我需要这样的东西才能访问另一个类上的TreeSet:

public class MainActivity extends AppCompatActivity {

    private TextView tv1,tv2,tv3;
    private ArrayList<Obj> ts;
    private Gestor gestor;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        findViews();

        gestor = new Gestor();

        gestor.getGestorTSusers()...                 
    }

    private void findViews() {
        this.tv1 = findViewById(R.id.tv1);
        this.tv2 = findViewById(R.id.tv2);
        this.tv3 = findViewById(R.id.tv3);
    }
}

在上面,我正在创建一个新的Gestor以访问内部的TreeSet,但是现在我想访问完全相同 TreeSet,我在这里工作但在另一个班级。如果我只是喜欢

private Gestor gestor;
this.gestor.get....

我是否在同一个TreeSet上工作? 上下文会以某种方式有用吗? 做这样的事情的最好,最有效的方法是什么?

对不起,我知道这看起来很糟糕,但这是我第一次问这个问题,请给我一个机会。

2 个答案:

答案 0 :(得分:1)

如果我正确理解您的问题,则只需要一个Gestor实例,并在多个类中使用它。当使Gestor为单例时,您将有与Trees绑定的相同TreeSet <...>实例。尝试了解单例设计模式在这里https://www.oodesign.com/singleton-pattern.html的含义。

答案 1 :(得分:0)

您需要在gestor对象中设置树集,如下所示。

Gestor gestor = new Gestor();
gestor.setGestorTSusers(treeSetYouWantToUse)

您还可以在Gestor类中创建一个采用树集的构造函数

public class Gestor {
        private TreeSet<User> gestorTSusers;

        public Gestor (TreeSet treeSetYouWantToUse){
            this.gestorTSusers = treeSetYouWantToUse;
        }          

        public TreeSet<User> getGestorTSusers() {
            return gestorTSusers;
        }

        public void setGestorTSusers(TreeSet<User> gestorTSusers) {
            this.gestorTSusers = gestorTSusers;
        }
    }

相关问题