2013-12-02 7 views
0

Ниже у меня есть класс с двумя переменными int, из которых я создал несколько объектов, которые я сохранил в связанном списке. Теперь я хочу пройти через каждый объект и сравнить ИХ ПОЛЯ из класса с другими значениями int. Другими словами, я хочу перебирать поля объектов, а не самих объектов. Любая помощь?итерации по полям каждого объекта связанного списка

import java.util.*; 
    import java.io.*; 


public class Obj 
{ 
int n; 
int c; 

public Obj (int nn) 
{ 
    n = nn; 
    c = 0; 
} 


public static void main(String argv[]) throws IOException 
{ 

    LinkedList list = new LinkedList(); 

    int i = 7; 
    Obj element = new Obj(i); 
    // I may add further objects.. 

list.add(element); 

// then I want to iterate through the linked list of objects and get each object 
// and compare its n or c field values with something else 

// It should sth like the below which I found in the web but I don;t get how it works 

for(Obj elementf : list) 
{ 
    // Process each object inside of object here. 
} 

} 
+0

Вы можете использовать Reflection и перебирать элемент 'elementf.getClass(). GetFields()', но это почти наверняка не то, что вы хотите сделать. – Sinkingpoint

ответ

0

Во-первых, использовать LinkedList<Obj> и не только сырой LinkedList; компилятор должен жаловаться на существующий код.

Что касается «итерации по полям», это на самом деле не имеет смысла. Просто перебирайте объекты Obj в списке и делайте что-то внутри этого цикла for с elementf.n и elementf.c.

+0

О да. Когда я положил LinkedList , он сработал. Я не понимаю, почему и как. Простите, я просто новичок в Java. Не могли бы вы объяснить или отправить мне ссылку/почему просто общий LinkedList не будет работать? Спасибо – user3054367

+0

@ user3054367 http://docs.oracle.com/javase/tutorial/java/generics/ – chrylis

Смежные вопросы