回答
在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類中沒有這樣的方法,但是你可以通過使用一個簡單的循環來獲得它。 –