gpt4 book ai didi

java - 如何使用对象类从多个列表中存储和检索数据?

转载 作者:行者123 更新时间:2023-11-29 19:15:21 25 4
gpt4 key购买 nike

我是 Java 的新手,所以如果这是一个愚蠢的问题,请原谅我。我有一个 Android 项目,它包含链接的类,让我尝试分解它......

  • MainActivity(用户将在其中输入 EditText 字段中的值,以及然后数据需要存储在某个地方)。
  • CustomUseCase(此类需要访问此数据,并使用其中的数据为测试进行计算)。
  • ParticleActivity(用户将在此处输入更多数据,该数据需要由 CustomUseCase 检索,然后有一个将运行的按钮自定义用例测试
  • SolutionActivity(这些测试的结果将显示在这里)。

现在用户输入的数据需要存储在一个String列表和3个Double列表中。我知道如何实现它,但我想知道组织它的最佳方式是什么,因为我对面向对象编程还很陌生。通常我会将这些列表设为静态并在 MainActivity 上声明它们,获取用户输入并通过静态变量访问它。但我想尝试一种矿石 OO 方法,所以我想建立一个模型,我可以在其中获得这些成本,将其保存在某个地方,然后在没有任何内存泄漏的情况下检索它等。我创建了一个名为 UserInputSet 的类,这是我的类...

public class UserInputSet {

//user inputs 3 costs from 3 edittext fields and each one gets saved in each of these
List<Double> DATAcost = new ArrayList<Double>();
List<Double> WLANcost = new ArrayList<Double>();
List<Double> UTILITYcost = new ArrayList<Double>();

//user enters string names for 1 set of costs
List<String> serviceNames = new ArrayList<String>();
List<String> dimensions = new ArrayList<String>(String);

}

MainActivity 的布局为用户提供了 4 个水平显示的编辑文本字段,第一个是字符串(名称),接下来的 3 个是每个成本(Datacost、WLANcost、UtilityCost),然后它们应该保存在这里,并且然后由 CustomUseCase 检索。做这个的最好方式是什么?谢谢 :)

最佳答案

根据您的问题,您需要使用 Oops 概念组织数据。所以最好为 UserInputSet 类尝试单例。

单例:

单例模式表示只需“定义一个只有一个实例的类并提供对其的全局访问点”。

优点:

  • 我们可以将构造函数设为私有(private)。这样我们就无法创建一个类外的对象。

  • 此属性对于在 java 中创建单例类非常有用。

  • 单例模式帮助我们在一个类中只保留一个实例任何时候。

  • 单例的目的是通过保持控制对象的创建私有(private)构造函数。

UserInputSet.java

    public class UserInputSet
{
private List<Double> mDataCost = new ArrayList();
private static UserInputSet mUserInputSet = new UserInputSet(); //Object as static
private UserInputSet()
{
// Empty Constructor declared as private so this class can nt be create object outside class.
}

public List<Double> getDataCost()
{
return mDataCost;
}

private void setData(List<Double> list)
{
if(list != null)
{
mList.clear();
mList.addAll(list);
}
}

public static UserInputSet getThis()
{
return mUserInputSet;
}
}

从 Activity 外部调用 UserInputSet 类方法:

MainActivity.java

     UserInputSet userInputSet = UserInputSet.getThis();
userInputSet.getDataCost();

关于java - 如何使用对象类从多个列表中存储和检索数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43724617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com