List用法总结
来源:互联网 发布:软件开发企业 编辑:程序博客网 时间:2024/04/30 10:35
List使用会有一些比较奇怪的问题,使用时需要注意
1. 情况1
想要按照索引值删除List的,但是会出现下列问题
public class ListUtils {/** * remove some indexs of list * * @param originaList * @param removePositionList * @return */public List removeList(List originaList, List<Integer> removePositionList) {List removeList = new ArrayList();for (int position : removePositionList) {removeList.add(originaList.get(position));}originaList.removeAll(removeList);return originaList;}public static void main(String[] args) {ListUtils listUnits = new ListUtils();List a = new ArrayList();a.add(2);a.add(3);a.add(23);a.add(2);List<Integer> removePositionList = new ArrayList<Integer>();removePositionList.add(0);removePositionList.add(1);listUnits.removeList(a, removePositionList);System.out.println(a.toString());}}
本来预期的结果应该是[23,2] 但是实际结果是[2]
问题原因: List 允许重复的数据,但是用removeAll/或者remove的时候,并不一定删除一个,也会将重复的数据删除。
解决办法
/** * remove some indexs of list * * @param originaList * @param removePositionList * @return */public List removeListRight(List originaList, List<Integer> removePositionList) {Collections.sort(removePositionList, Collections.<Integer>reverseOrder());for (int position : removePositionList) {originaList.remove(position);}return originaList;}
阅读全文
0 0
- list用法总结
- STL list用法总结
- List用法总结
- List分类与用法总结
- Python list操作用法总结
- List Set Map 实现类用法总结
- C++STL之list用法总结
- Vc控件用法总结之List Control
- STL中list的用法总结
- Vc控件用法总结之List Control
- Vc控件用法总结之List Control
- C++之STL的list用法总结
- python list的一些用法总结
- python list(列表)操作用法总结
- Vc控件用法总结之List Control
- c++ STL的list用法总结
- List,Map,Set用法以及区别总结
- Android 04 layer-list的用法总结
- Java的格式化输出
- 学习 ui-router (四): 路由控制
- :before 和 :after的多用途实践 — 特效篇(1)
- 最长回文
- TextView控件常用属性
- List用法总结
- 线程绑定cpu执行源码
- sakila-db示例数据库的安装导入
- JNI的局部和全局引用
- 排序算法总结(5)--堆排序
- 【嵌入式开发】SIP信令交互总结(1)
- opencv中轮廓检测函数
- Linux中如何开启8080端口供外界访问
- concurrent包分析-阻塞队列BlockingQueue及其实现类