假設我有一個複雜的數據類型對象數組。例如:FullName[100]
。每個FullName
對象都有2個類成員變量:String FirstName
和String LastName
。現在,從這個FullName
對象的數組中,我想要檢索一個String FirstNames[]
的數組。從java中的對象數組中檢索分配給特定類成員的值數組
如何在沒有擴展for循環應用程序的情況下執行此操作?
假設我有一個複雜的數據類型對象數組。例如:FullName[100]
。每個FullName
對象都有2個類成員變量:String FirstName
和String LastName
。現在,從這個FullName
對象的數組中,我想要檢索一個String FirstNames[]
的數組。從java中的對象數組中檢索分配給特定類成員的值數組
如何在沒有擴展for循環應用程序的情況下執行此操作?
您可以嘗試查看Functional Programming in Java並應用map
函數庫中的一個。
我不確定爲什麼要避免循環如此重要,但您可以這樣做: 您可以將名稱存儲在字符串數組中,併爲您的FullName類使用Flyweight模式。因此,您的FullName實例擁有對這些數組的引用,以及指向數組中正確元素的索引。
只是想知道,但現在,我將與for循環一起生活。 :) – bikashg 2013-03-18 09:39:50
在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);
}
}
基本上是:不,你不能......總會有一個遍歷數組迭代莫名其妙。也許你不會看到它,因爲一些圖書館隱藏它在一些聰明的函數調用後面,但它會在那裏... – ppeterka 2013-03-18 09:33:39
好的,感謝您的評論。 – bikashg 2013-03-18 09:39:19