首页 > 解决方案 > 从多个类访问和修改一个类中的ArrayList/TreeSet

问题描述

我是 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吗?上下文会以某种方式有用吗?做这样的事情最好和最有效的方法是什么?

很抱歉,我知道这看起来很糟糕,但这是我第一次提出要求,所以给我一个机会。

标签: javaandroidarraysarraylist

解决方案


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


推荐阅读