从存储在Arraylist中的Arraylist访问数据 - Java

时间:2013-08-31 18:19:08

标签: java object arraylist

我正在尝试从存储在Arraylist中的Arraylist中访问数据。我确信有一个非常简单的方法可以做到这一点,我不想浪费任何人的时间,但我已经尝试了很多方法,似乎无法在任何地方找到答案。任何帮助将非常感激。

这是我创建数组的代码。

    public ArrayList SGenresMaster = new ArrayList(new ArrayList());
    public ArrayList S1Genres = new ArrayList();
    public ArrayList S2Genres = new ArrayList();
    public ArrayList S3Genres = new ArrayList();        


    public void accessArrays(){

    SGenresMaster.add(S1Genres);
    SGenresMaster.add(S2Genres);  
    SGenresMaster.add(S3Genres);

    }

基本上我需要能够使用SgenresMaster访问S1Genres的任何索引。

到目前为止,我只是设法将数据作为一个长字符串输出,所以我想我会发布我当前的方法来获取我需要的数据,因为我认为它可能会让专业人士在这里畏缩/笑。

    createarray(SGenresMaster.get(i).toString());

    public ArrayList createarray(String string){

    String sentence = string;
    String[] words = sentence.split(", ");
    ArrayList temp = new ArrayList();
    int b = 0;
    for (String word : words)
    {
        if (b == 0){
            //Delete First bracket
            temp.add(word.substring(1,word.length()));
            System.out.println("First Word: " + temp);
        }
        else{
            temp.add(word.substring(0,word.length()));
            System.out.println("Middle Word: " + temp);
        }
        b++;

    }
    //Delete last bracket
    String h = String.valueOf(temp.get(temp.size() - 1));
    temp.add(h.substring(0,h.length() - 1));
    temp.remove(temp.size() - 2);


    System.out.println("final:" + temp);

    return temp;
} 

2 个答案:

答案 0 :(得分:2)

使用原始泛型类型是bad practice。你失去了仿制药的所有优点。

那就是说,如果你的子列表是由字符串组成的话来说明:

        ArrayList<List<String>> SGenresMaster = new ArrayList<List<String>>();
        ArrayList<String> S1Genres = new ArrayList<String>();
        ArrayList<String> S2Genres = new ArrayList<String>();
        ArrayList<String> S3Genres = new ArrayList<String>();

        SGenresMaster.add(S1Genres);
        SGenresMaster.add(S2Genres);  
        SGenresMaster.add(S3Genres);


    SGenresMaster.get(0).get(0); //gets the first element of S1Generes

答案 1 :(得分:0)

我希望你的问题是对的:

for(ArrayList<String> arr: SGenresMaster){
    //arr can be any array from SGenresMaster
    for(String s : arr){
      //do something
   }

}

 SGenresMaster.get(index).get(someOtherIndex);