回答
在Java 8中这非常容易,只要确保在索引上使用流,而不是在对象上,并使用.map
;
public static void main(String[] args) {
List<String> stringList = Arrays.asList("a", "b", "c", "d");
List<Integer> indices = Arrays.asList(1, 3);
List<String> resultList = indices.stream()
.map(i -> stringList.get(i))
.collect(Collectors.toList());
System.out.println(resultList);
}
这并不难在Java 7中之一:
public static void main(String[] args) {
List<String> stringList = Arrays.asList("a", "b", "c", "d");
List<Integer> indices = Arrays.asList(1, 3);
List<String> resultList = new ArrayList<>();
for(int i : indices) {
resultList.add(stringList.get(i));
}
System.out.println(resultList);
}
在这两种情况下,输出的是:只有
[b, d]
我正在寻找一种原生的方式来做到这一点,这正是我所使用的 – rossb83
使用一个循环与LinkedHashMap
,因为没有这样的特定方法获取列表中的一个子集(索引)集合类。
代码:
public static void main(String[] args) {
List<Character> ls = new ArrayList<Character>();
ls.add('a');
ls.add('b');
ls.add('c');
ls.add('d');
ls.add('e');
ls.add('f');
ls.add('g');
//EDIT
int subIndex[] = new int[] { 1, 4, 5 };
Map<Integer, Character> result = new LinkedHashMap<>();
for (int i = 0; i < subIndex.length; i++) {
result.put(i, ls.get(subIndex[i] - 1));
}
System.out.println(result.values());
}
输出: [a, d, e]
我希望这将有助于。
其实,我认为这是'ade'的输出,而不是'[a,d,e]' – durron597
@ durron597,感谢提高这一关切。这个输出是'ade'或者一个d(全都在不同的行中(println()))。 –
@ durron597,请立即检查。感谢提及。 –
- 1. 如何使用一个查询获得包含子列表的列表?
- 2. 如何获得包含任何NA字段的列的列表?
- 3. Python:我如何获得子集的排列列表?
- 4. 包含非聚集索引的列
- 5. 如何获得包含在
- 6. 如何获得diff中包含的文件列表?
- 7. 我如何获得不包含列表中的数据?
- 8. 如何获得包含所有Actionscript 3 api名称的列表?
- 9. 如何获得集合的空列表?
- 10. 在“表”中 - 包:如何获得变量子集的列百分比?
- 11. 如何获得在SQL Server中包含公共列值的表的列表
- 12. 如何获得包含在另外两个列表中的元素的列表?
- 13. SQL Server如何处理非聚集索引中的包含列?
- 14. 如何获取包含列表
- 15. 2个包含非共享列表的交集
- 16. 列表包含非聚合列
- 17. 如何获得列表中非零元素的索引列表?
- 18. 了解如何在非聚集索引中包含主键列
- 19. 如何获得包含条件的值?
- 20. 将“包含”列包含在已经属于集群密钥的非聚集索引中的效果如何?
- 21. 如何在EF中包含子集?
- 22. 如何获得的,其中包含认购()方法离子2
- 23. 如何获得操纵事件包含的ScrollViewer孩子
- 24. 如何获得包含最少孩子的父母?
- 25. 如何获得包含接口程序集Assembly.GetCallingAssembly()
- 26. 如何获取包含所有dba包的描述的列表
- 27. Xpath的选择要素,它包含特定列表的子集
- 28. 选择包含在实体中的列表的子集
- 29. 获得包含iframe
- 30. 如何获得非空的第一列
我正在使用java 7,但java 8的方式是什么? – rossb83
在Collections类中没有这样的方法,但是你可以通过使用一个简单的循环来获得它。 –