2013-09-19 3 views
2

Я не совсем уверен, как правильно это сформулировать. У меня есть список объектов, и у этих объектов есть получатели для определенных полей. Теперь мне нужно сделать массив из списка ojbect, но мне нужна только одна конкретная часть данных.Создать массив из определенного поля объектов, которые находятся в списке

Есть ли способ сделать это без использования интернатора, который кажется ужасно неэффективным?

Это приложение в контексте приложения для Android.

+1

Независимо от того, используете ли вы итератор или индексированный цикл, эффективность будет, по сути, одинаковой. –

+0

Вам нужно будет каким-то образом пройти через список, и, насколько я знаю, итератор примерно так же быстро работает, как и есть, поскольку накладных расходов не так много. Что заставляет вас думать, что итератор будет неэффективен? – ajb

+0

Плохое предположение с моей стороны? Наверное, я просто подумал, что может быть способ сделать это за кулисами, что было лучше. – TrustNoOne

ответ

0

Просто, чтобы закрыть это - комментарии под вопросом - правильный ответ. Кажется, что нет лучшего (или более эффективного) способа делать то, что я просил.

0
// our original list 
    List<Integer> list = new ArrayList<Integer>(); 

    // inserting some values 
    for(int i = 0;i<100;i++){ 
     list.add(i); 
    } 

    // work starts here : 

    // select a range of elements based on index 
    List<Integer> subList = list.subList(0, 50); 
     // list.subList(from index-inclusive,to index-exclusive) 

    // create an array to hold your new values 
    Integer[] myArray = new Integer[0]; // must initialize 

    // assign the part of your original list to this array 
    myArray = subList.toArray(myArray); 


    // test Result : 
    System.out.println(Arrays.toString(myArray)); 
     // reult : 
     /* 
     * [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 
     * 11, 12, 13, 14, 15, 16, 17, 18, 19, 
     * 20, 21, 22, 23, 24, 25, 26, 27, 28, 
     * 29, 30, 31, 32, 33, 34, 35, 36, 37, 
     * 38, 39, 40, 41, 42, 43, 44, 45, 46, 
     * 47, 48, 49] 
     */ 

    // hope this was what you were looking for 
Смежные вопросы