我正在尝试从存储在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;
}
答案 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);