我想使用函數式編程將數據從一個對象的集合複製到其他對象的集合。如何將數據從對象集合複製到Java8中不同對象的集合
我一直在閱讀幾本Java 8書籍和在線研究。我很確定我想使用stream(),但幾乎每個我見過的例子都會遍歷集合,對集合中的對象進行一些處理,並使用println()輸出內容。似乎沒有人討論如何處理下面描述的情況。
假設我們有以下對象:
public class ObjectA { private String someData; private int moreData; public String getSomeData() { return someData; } public void setSomeData(String sData) { someData = sData; } public int getMoreData() { return moreData; } public void setMoreData(int mData) { moreData = mData; } } public class ObjectB { private String b_Data; public String getB_Data() { return b_Data; } public void setB_Data(String bData) { b_Data = bData; } }
我想創建對象B的對象的集合,其b_data atributes都等於someData ObjectAs的集合屬性。
一個相當不錯的辦法做到這一點下面的代碼所示:
public class Collector { public Collection<ObjectB> collectObjects(Collection<ObjectA> theAs) { // The use of an ArrayList is arbitrary. I might want to use any number // of different lists or even different collections! final Collection<ObjectB> theBs = new ArrayList<ObjectB>(); for(ObjectA obj : theAs) { final ObjectB bobj = new ObjectB(); bobj.setB_Data(obj.getSomeData()); theBs.add(bobj); } return theBs; } }
在collectObjects()
方法中的代碼將工作,但它使用命令式編程的techniqhes。我想知道如何使用功能性技術來製作ObjectB的集合。
有沒有辦法使用流和lambdas來實現這個?