2013-04-16 2 views
1

Предположим, у меня есть массив объектов, например, манекенов []. Я хочу найти индекс объектов массива, где их атрибут a == 5 или a > 3 т.д.Подмножество/индексы массива объектов на основе атрибутов объекта

class Dummy{ 
    int a; 
    int b; 
    public Dummy(int a,int b){ 
    this.a=a; 
    this.b=b; 
    } 
} 
public class CollectionTest { 
    public static void main(String[] args) { 
     //Create a list of objects 
     Dummy[] dummies=new Dummy[10]; 
     for(int i=0;i<10;i++){ 
      dummies[i]=new Dummy(i,i*i); 
     } 

     //Get the index of array where a==5 
     //??????????????????????????????? -- WHAT'S BEST to go in here? 
    } 
} 

Есть ли способ, кроме перебора объектов массива и проверить условие? Использует ли ArrayList или другой тип Collection здесь?

+0

Вам необходимо выполнить итерацию по массиву и добавить соответствующее значение 'dummies' в новый массив. – Aquillo

+0

Простая итерация позволит вам найти данный предмет, но лучше задать вопрос, почему вы хотите индекс? Или вы действительно ищете объект с 'a == 5'? –

+0

Мне нужны индексы, потому что я держу таблицу ассоциаций. Существует второй массив, у которого есть объекты, которые включают только переменную «a». Мне нужно сопоставить их с объектами в этом массиве и выполнить некоторые вычисления. a == 5 - просто пример. У меня есть ряд значений. – user1288502

ответ

1
// Example looking for a==5 
// index will be -1 if not found 
int index = -1; 
for(int i=0; i<dummies.length; i++) { 
    if(dummies[i].a == 5) { 
     index = i; 
     break; 
    } 
} 
Смежные вопросы