簡體   English   中英

如何遍歷字符串數組列表的數組列表?

[英]How to iterate through an arraylist of an arraylist of strings?

我正在創建一個程序,該程序允許用戶與輸入的文件進行交互。 選項之一是顯示文件。 在下面,我首先通過創建由行組成的arraylist,然后將內部的arraylist(由字符串分隔,由空格分隔)將文件存儲到arraylist中。

Scanner sc = new Scanner(fileName);

    while (sc.hasNextLine()) {
        String line = sc.nextLine();
        String[] words = {};
        words = line.split(" ");
        ArrayList<String> lineArray = new ArrayList<String>();
        for (int i = 0; i < words.length; i++) {
            lineArray.add(words[i]);
        }
        fileByLine.add(lineArray);
    }
    sc.close();

我正在嘗試打印出現在文件中的arraylist的內容,稱為fileByLine,但是我不確定如何打印。 有什么建議嗎?

case '1':
for(int i = 0; i < fileByLine.size(); i++){
for(int j = 0; j < fileByLine.[i].size(); j++){
System.out.print(fileByLine[i][j]);
  } System.out.println("");
} break;

您正在使用括號表示數組,需要將get()用於數組列表

for(int i = 0; i < fileByLine.size(); i++){
    for(int j = 0; j < fileByLine.get(i).size(); j++){
        System.out.print(fileByLine.get(i).get(j));
    }
    System.out.println("");
}

由於您的容器包含String type您可以按照以下方式進行打印:

System.out.println(fileByLine);

無需遍歷您的收藏。 例如,假設您有以下列表:

List<String> oneList = new ArrayList<>(Arrays.asList("1 2 3 4 5 6 7".split(" ")));

並將其添加到另一個列表中:

List<List<String>> anotherList = new ArrayList<>();
anotherList.add(oneList);

添加后,您要打印它,這是它的外觀:

System.out.println(anotherList);

輸出:[[1、2、3、4、5、6、7]

如果您在容器中保留任何其他custom type ,並嘗試打印它,直到您override toString()方法,否則它將由於String type而打印。

如果您需要遍歷兩個嵌套列表,也可以使用這種方法:

Iterator<List<String>> outerIterator = anotherList.listIterator();

while (outerIterator.hasNext()) {
    Iterator<String> innerIterator = outerIterator.next().listIterator();

    while (innerIterator.hasNext()) {
        String item = innerIterator.next();
        System.out.print(item + " ");
    }

    System.out.println();
} 

或類似的東西...

     for (List list : fileByLine) {
        for (Object line : list) {
            System.out.print(line);
        }
        System.out.println("");
     }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM