2013-03-18 56 views
1

假設我有一個複雜的數據類型對象數組。例如:FullName[100]。每個FullName對象都有2個類成員變量:String FirstNameString LastName。現在,從這個FullName對象的數組中,我想要檢索一個String FirstNames[]的數組。從java中的對象數組中檢索分配給特定類成員的值數組

如何在沒有擴展for循環應用程序的情況下執行此操作?

+3

基本上是:不,你不能......總會有一個遍歷數組迭代莫名其妙。也許你不會看到它,因爲一些圖書館隱藏它在一些聰明的函數調用後面,但它會在那裏... – ppeterka 2013-03-18 09:33:39

+0

好的,感謝您的評論。 – bikashg 2013-03-18 09:39:19

回答

1

您可以嘗試查看Functional Programming in Java並應用map函數庫中的一個。

+1

但是在這之後,語法糖後面有一個循環,對吧? – ppeterka 2013-03-18 09:33:05

+0

@ppeterka好,當然是.. – 2013-03-18 09:33:39

+0

OP想要精確地說... – ppeterka 2013-03-18 09:34:52

0

我不確定爲什麼要避免循環如此重要,但您可以這樣做: 您可以將名稱存儲在字符串數組中,併爲您的FullName類使用Flyweight模式。因此,您的FullName實例擁有對這些數組的引用,以及指向數組中正確元素的索引。

+0

只是想知道,但現在,我將與for循環一起生活。 :) – bikashg 2013-03-18 09:39:50

0

在Java 8,你可以做這樣的事情:

public class Test { 
    class FullName { 
     private String firstName; 
     String getFirstName(){return firstName;} 
    } 


    void main(String... argv) { 
     FullName names[] = {new FullName()}; 
     String[] firstNames = Arrays.stream(names).map(FullName::getFirstName).toArray(String[]::new); 
    } 
}