2014-07-10 33 views
-1

的迭代我有一個A類爪哇 - 的ArrayList

CLASS A

public ClassA { 

ArrayList<ClassB> objB= new ArrayList<ClassB>(); 

//getter and setter of objB 

} 

CLASS B

public classB { 

int x; 
int y; 

private List<ClassC> objC= null; 

//getter and setter of x,y and objC 

} 

C類

public classC { 

int a; 
int b; 

//getters and setters of a,b 

} 

我將結果集存儲在類A中的objB中。我試圖在我的服務類中迭代objB。

公共類serviceImpl {

ClassA的objA =新ClassA的();

//這裏我需要得到變量X,Y,的A,B

}

+1

你的問題並沒有多大意義。請更清楚地說明你想要什麼... –

+2

顯示你的代碼而不是描述它。 –

+0

[在方法中迭代ArrayList]的可能的重複(http://stackoverflow.com/questions/5236112/iterating-arraylist-inside-a-method) –

回答

2

你可以使用這些值和enhanced for-loop.

不要使用CLASSB代替B的泛型。你在第二版期間做得很對。 也許這可以幫助你。

ArrayList<B> classB = new ArrayList<B>(); 
public static void main(String[] args) { 
    // instantiate the objects 
    A myClassA = new A(); 
    B myClassB = new B(); 
    C myClassC1 = new C(); 
    C myClassC2 = new C(); 
    // set the values 
    myClassC1.setA(1); 
    myClassC1.setB(10); 
    myClassC2.setA(2); 
    myClassC2.setB(20); 
    myClassB.setX(3); 
    myClassB.setY(30); 
    // create the lists 
    List<C> myListC = new ArrayList<C>(); 
    myListC.add(myClassC1); 
    myListC.add(myClassC2); 
    // set the lists 
    myClassB.setObjC(myListC); 
    myClassA.classB.add(myClassB);// better use a getter/setter 
    // iterate the list 
    for (B auxClassB : myClassA.classB) { 
     System.out.println("X:" + auxClassB.getX() + " Y:" 
       + auxClassB.getY()); 
     for (C auxClassC : auxClassB.getObjC()) { 
      System.out.println("A: "+ auxClassC.a + " B: "+ auxClassC.getB()); 
     } 
    } 
} 

控制檯輸出

X:3 Y:30 
A: 1 B: 10 
A: 2 B: 20 

好運

+0

在任何人問起之前,不,這不是一個僅鏈接的答案。 –

+0

今天我瞭解到,在Java中,foreach迭代器被稱爲「增強for循環」,儘管它比常規循環更有用。 –

+0

我知道,我只是想問題開發 – PbxMan

0

某處A類:

for (ClassB b : classB) 
{ 
    // whatever you want with b, which is of type ClassB 
} 
+0

A類只是一個值對象類,它包含B類的數組列表對象以及getters和setter。我需要通過在不同的類中創建類A的對象來獲取類B和C的內容。 – Namita