列表删除操作-list.remove()
2016-06-30 11:07
267 查看
面试遇到一算法,当时觉得自己做的挺对的,还和面试官沟通了很久,回来细想就醒悟了,自己把人家想让你进的坑都进了,哎~
list.remove()删除尤其要注意位置,很容易越界~
1.算法描述:
输入:一个ArrayList的列表,这个列表的数据在[0,13]之间,删除这个列表所有和等于14的数据
输出:列表剩余的数据
2.代码展示
3.结果
list.remove()删除尤其要注意位置,很容易越界~
1.算法描述:
输入:一个ArrayList的列表,这个列表的数据在[0,13]之间,删除这个列表所有和等于14的数据
输出:列表剩余的数据
2.代码展示
public class ListRemoveTest { public static void main(String args[]){ //list:{1,2,3,7,13,11,12,9,4,13} ArrayList<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); list.add(7); list.add(13); list.add(11); list.add(12); list.add(9); list.add(4); list.add(13); System.out.print("删除前list:"); for (Integer integer : list) { System.out.print(integer + ","); } //存放删除数据的列表位置 ArrayList<Integer> positions = new ArrayList<Integer>(); for (int i = 0; i < list.size(); i++) { for (int j = i+1; j < list.size(); j++) { if (list.get(i) + list.get(j) == 14) { if (!positions.contains(i)) { positions.add(i); } if (!positions.contains(j)) { positions.add(j); } } } } System.out.println(""); System.out.print("需要删除的位置:"); for (Integer integer : positions) { System.out.print(integer + ","); //排序 Collections.sort(positions); System.out.println(""); System.out.print("需要删除的位置(排序后):"); for (Integer integer : positions) { System.out.print(integer + ","); } //删除列表元素 for (int i = 0; i < positions.size(); i++) { list.remove(positions.get(i) - i); } System.out.println(""); System.out.print("删除后的list:"); for (Integer integer : list) { System.out.print(integer + ","); } } }
3.结果
相关文章推荐
- 只有程序员看的懂的面试圣经|如何拿下编程面试
- 下一次技术面试时要问的 3 个重要问题
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- C#递归算法之分而治之策略
- C#.Net ArrayList的使用方法
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- C#算法之大牛生小牛的问题高效解决方法
- C#算法函数:获取一个字符串中的最大长度的数字
- PHP程序员面试 切忌急功近利(更需要注重以后的发展)
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- VBS ArrayList Class vbs中的数组类
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- 经典排序算法之冒泡排序(Bubble sort)代码
- c语言实现的带通配符匹配算法