Android系列,我应该使用哪些?

Hor*_*rse 2 java arrays collections android multidimensional-array

只需制作一个小的Android应用程序,我需要保存一组数据,并不确定我是否应该使用对象,数组,listarray,hashmap等.

它需要能够存储字符串和整数(例如,tamename,score,category,turn of number).

它需要能够存储可变数量的团队.

目前我有尝试将其存储为对象的问题,但它不会增加得分int值.

我应该为这个实例使用哪个集合,何时应该在其他实例中使用每个集合?

编辑

确实如此,但是当我尝试访问/增加它时,我一直收到NullPointerException.我只能假设它无法从upScore正确访问团队var

所以我的onCreate是这样的

public ArrayList<Team> teams;
public int currentTeam;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game);

    currentTeam = 0;

    List<Team> teams = new ArrayList<Team>();

    teams.add(new Team("Team 1"));
    teams.add(new Team("Team 2"));

}
Run Code Online (Sandbox Code Playgroud)

然后在按下按钮时调用upScore.致命的例外是在这条线上

public void upScore(int team_key) {
    teams.get(0).score++;
}
Run Code Online (Sandbox Code Playgroud)

这是我的Team对象

class Team {
    public String name;
    public int score;
    public String category;
    public int turns;

    public Team (String teamName) {
        name = teamName;
    }
}
Run Code Online (Sandbox Code Playgroud)

Eng*_*uad 6

创建自己的类,表示可以保存所需数据的对象,例如:

class Team
{
    public String teamName;
    public int score;
    public String category;
    public int numberOfTurns;

    public Team(...){...} // the constructor
}
Run Code Online (Sandbox Code Playgroud)

然后使用您想要的任何数据结构,例如,arraylist:

List<Team> list = new ArrayList<Team>();
Run Code Online (Sandbox Code Playgroud)

要向列表中添加元素:

list.add(new Team(...));
Run Code Online (Sandbox Code Playgroud)

要增加列表中第一个团队的分数:

list.get(0).score++;
Run Code Online (Sandbox Code Playgroud)

等等...