簡體   English   中英

返回列表中每個元素的第一個元素?

[英]Returning the first element of each element in a list?

我不確定該怎么做,

說我有這個,

List<SetOfStuff> example = [[a,b,c],[1,2,3],[x,y,z]];
return example;

有沒有辦法讓我只返回每組的第一個元素,例如。

return [[a],[1],[x]];

甚至更好

return [a,1,x];

謝謝您的幫助

基本上,你是用這一行在列表中定義一個集合(我猜這個SetOfStuff是某種Set):

    List<SetOfStuff> example = [[a,b,c],[1,2,3],[x,y,z]];

您需要首先使用List的get()方法從example獲取元素,然后從List的get()獲取返回結果的第一個元素。 要訪問List中的每個元素(所以每個Set),你需要某種循環。 下面是關於如何做到這一點的半偽代碼。 這取決於如何訪問SetOfStuff中的元素。

    List<Object> firstElements = new List<Object> (); // normally, using Object is not a great idea, but I don't know much about the data in example. Change this accordingly
    for (int i = 0; i < example.size(); i++){ // this iterates over every element in the list
        firstElements.add(example.get(i).getFromSet(0)); // in this, I assume that getFromSet(0) gets the first element from the SetOfStuff object
    }

這是您正在尋找的基本格式。 如果您有任何疑問,請告訴我。

如果SetOfStuff具有結構,並且您聲明它是一個POJO,那么如果它還沒有,則給它一個getId()方法。 然后,開始

public List<SetOfStuff.ID> extractIds(List<SetOfStuff> stuffList) {
    List<SetOfStuff.ID> ids = new ArrayList<>() // Java 7.
    for((SetOfStuff stuff: stuffList) {
        ids.add(stuff.getId());
   }
    return ids;
}

如有必要,請使用實際類型的SetOfStuff.ID 考慮一個帶有transform方法的函數式編程庫,盡可能使用Java 8 lambdas。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM