我不确定如何做到这一点,
说我有这个,
List<SetOfStuff> example = [[a,b,c],[1,2,3],[x,y,z]];
return example;
我是否有办法只返回每组的第一个元素,例如。
return [[a],[1],[x]];
甚至更好
return [a,1,x];
感谢您的帮助
答案 0 :(得分:1)
基本上,你是用这一行在列表中定义一个集合(我猜这个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
}
这是您正在寻找的基本格式。如果您有任何问题,请告诉我。
答案 1 :(得分: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
的实际类型。考虑一个带有transform方法的函数式编程库,并尽可能使用Java 8 lambdas。