0

我不确定如何做到这一点,

说我有这个,

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

有没有办法让我只返回每组的第一个元素,例如。

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

甚至更好

return [a,1,x];

谢谢您的帮助

4

2 回答 2

1

本质上,您正在使用以下行在列表中定义一个集合(我猜 SetOfStuff 是某种集合):

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

您需要首先example使用 List 的 get() 方法获取一个元素,然后从 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
    }

这是您正在寻找的基本格式。如果您有任何问题,请告诉我。

于 2013-03-25T17:47:11.780 回答
1

如果 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如有必要,请使用实际类型。考虑一个带有转换方法的函数式编程库,并尽可能使用 Java 8 lambdas。

于 2013-03-25T18:06:19.513 回答