gpt4 book ai didi

java - 用于 java 的 Itemgetter(i)

转载 作者:行者123 更新时间:2023-12-02 02:49:57 25 4
gpt4 key购买 nike

我最近学会了使用ìtemgetter(i)在Python中获取多个列表中的第i个元素。例如:

j_column=list(map(itemgetter(j), board[i+1:]))

board[i+1]部分返回一个列表列表,每个列表代表第i行下方的一个水平行,即板的一个子部分,上面的代码返回了第j列该小节。

现在我正在做类似的事情,我必须在一个列表中获取 n 个列表的第 i 个元素。 n 未知,但我必须在 Java 中执行此操作。我现在正在寻找 Java 中的 itemgetter(i) 函数的等效项

更多信息:

假设我有一个列表列表,例如: my_list 将输出 [[1,4,5,6,7],[3,0,0,9,8, 4],[1,4,5]] 我正在寻找的函数称为 someFunction 并且我想要每个子列表中的第三个数字,这意味着索引 2 处的每个元素每个子列表,这就是我正在寻找的:

 somefunction(2, my_list); //this would output [5,0,5]

最佳答案

正如您在评论中所指出的,您

  • List<List<Something>>
  • 想要检索 i每个列表中的第一个元素,将其添加到新的 List<Something>并返回该列表。

这段代码应该足够了:

/**
* Method is parameterized in the list-type, thus achieving maximal type checking. If the
* inner lists are of different types, the inner lists must be of type List<Object>,
* other types will not work. Type-checking is out of the window at that point.
*
* @param lists the list of lists, non-null and not containing null's.
* @param i the index to pick in each list, must be >= 0.
* @param <T> generic parameter of inner lists, see above.
* @return a List<T>, containing the picked elements.
*/
public static <T> List<T> getIthOfEach(List<List<T>> lists, int i) {
List<T> result = new ArrayList<T>();

for(List<T> list : lists) {
try {
result.add(list.get(i)); // get ith element, add it to the result-list
// if some list does not have an ith element, an IndexOutOfBoundException is
// thrown. Catch it and continue.
} catch (IndexOutOfBoundsException e) { }
}
return (result);
}

您可以像这样调用此方法:

List<Integer> everyFifthInteger = getIthOfEach(listOfListsOfIntegers, 5);
List<Object> everyFifthThing = getIthOfEach(listOfListsOfthings, 5);

关于java - 用于 java 的 Itemgetter(i),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44009818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com