簡體   English   中英

如何在Java中迭代這兩個循環?

[英]How could I iterate these two loops in java?

我目前正在嘗試對數組中的數組進行編程,並對數組的內容進行迭代。 我不確定如何執行此操作,因為數組的類型不同。 我確定可以通過創建至少兩個方法來解決此問題,一個方法用於字符串,一個方法用於int,但是我不確定如何迭代此方法,因為第一個數組是ArrayList,后續數組只是列表。 我的問題是,如何迭代到第一個ArrayList,然后迭代到后續的數組? 這是我到目前為止的代碼:

import java.util.ArrayList;

public abstract class Unit {

    ArrayList<Item> unitInv;

    protected Unit (ArrayList<Item> inv) {
        unitInv = inv;
    }

    public Object[] itemName() { 
        Object[] itemName = unitInv.toArray(); 
        for (int i = 0; i < 1; i++) { getItemName() 
            System.out.println(unitInv.toArray());
        }
        return itemName; 
    }

    public class Item {

        static String[] itemString;
        static int[] itemInt;

        public Item(String[] itemS, int[] itemI) {
        itemString = itemS;
        itemInt = itemI;
    }

    public static int getItemName() {
        int size = itemString.length;
        for (int i = 0; size < 1; i++) {
            System.out.println(itemString[i]);
        }
        return size;
    }
}

我敢肯定,我只是在這里不考慮簡單的事情。 我無法弄清楚如何通過item類中的itemName方法從Item itemString數組中獲取值。 謝謝您的幫助!

您的unitInv是項objects的arrayList。 因此,您可以通過object直接訪問itemStringitemInt列表。

for (Item item : unitInv) {

    // access itemString
    String[] itemString = item.itemString; // or use getter

    // iterate through list
    for(String strItem : itemString) {
       System.out.println(strItem)
    } 

    // same applicable for itemInt
}

從我的角度來看,您有一個Item數組,每個項目都有String[]int[] 因此,為了迭代ArrayList您需要1個循環,對於每個Item您需要2個循環-一個用於String[] ,一個用於int[] 它看起來像這樣:

//suppose we have initialize unitInv 
ArrayList<Item> unitInv;

for(Item item : unitInv) {
    for(int iString = 0; iString < item.itemString.length; iString++) {
        //code for itemString array
    }

    for(int iInt = 0; iInt < item.itemInt.length; iInt++) {
        //code for itemInt array
    }
}

暫無
暫無

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

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