如何删除集合(数组)中指定的元素
文章目录
- 如何删除集合(数组)中指定的元素##
- 1.首先删除数组中的元素,没有特定的api
- 2. list集合删除元素
如何删除集合(数组)中指定的元素##
1.首先删除数组中的元素,没有特定的api
由于没有特定的快捷删除的api,所以就自己来实现,最后封装成工具方法
实现思路:
1.用最后一个索引位置的元素来替代想要删除的索引位置的元素
2.把原数组进行缩容
代码:
int[] arr = new int[]{1,2,4,5,9,8,0};System.out.println(Arrays.toString(arr) +"--------77777");//替换arr[2]=arr[arr.length-1];//缩容int[] arr1 = Arrays.copyOf(arr, arr.length - 1);System.out.println(Arrays.toString(arr1) +"??????????");
打印结果:
[1, 2, 4, 5, 9, 8, 0]--------77777
[1, 2, 0, 5, 9, 8]??????????
这就完成了数组的删除元素,如果有排序要求,调用排序方法即可
2. list集合删除元素
list集合有自带的删除索引位置元素的方法remove(int index);这为我们删除集合元素提供了很大方便,
但是注意:
如果用数组的List list = Arrays.asList(arr); 这个返回的list就不能使用remove方法,否则会报
java.lang.UnsupportedOperationException不支持的操作异常
原因:
首先我们看Arrays.asList(arr)的源码
public static <T> List<T> asList(T... a) {return new ArrayList<>(a);}
接着点进返回的new ArrayList<>(a);
private final E[] a;ArrayList(E[] array) {a = Objects.requireNonNull(array);}
可以看到:这个a是final修饰的常量,常量不能做修改操作,remove时会报异常
所以使用Arrays.asList(arr)转化的集合不能使用remove()
但使用new的list,list.add添加元素的可以使用remove()删除指定元素。
那么怎么做list的删除呢?有以下三种方法
1.使用集合的迭代器iterator
代码:
Iterator iterator = list.iterator();while (iterator.hasNext()){Object next = iterator.next();if (next.equals("5")){ //遍历集合元素,当元素等于某个值时,进行删除iterator.remove();}}
2.使用for循环
for (int i = 0 ;i <list.size();i++){if (list.get(i).equals("4")){ //遍历集合元素等于某个值,删除这个元素list.remove(i);}}
3.使用removeIf()
list.removeIf(l->l.equals("1")); //如果元素等于1 就删除!
邮箱1149513559@qq.com
如何删除集合(数组)中指定的元素相关推荐
- jQuery删除数组中指定的元素
jQuery删除数组中指定的元素 方法:arr.splice($.inArray(元素, 数组), 删除的个数); var arr = ['a','b','c','d']; arr.splice($. ...
- 力扣 26.删除有序数组中的重复元素
文章目录 题目 思路 AC代码 收获 题目 删除有序数组中的重复元素 思路 快慢指针.快指针不断向前走.判断快指针所指的数与快指针前面的数是否相等,如果相等就说明是重复的,要继续向后移动,如果不相等, ...
- js 删除对象数组中指定元素
操作对象数组中指定条件的元素: 例: let arr = [{createDate: "2021-03-20",id: 1 }, {createDate: "2021-0 ...
- php删除数组中指定的元素,php如何删除数组中指定的元素?
php删除数组中指定元素的方法:1.使用[array_splice()]函数删除,代码为[$key = array_search(3, $arr1)]:2.使用[unset()]函数删除,代码为[un ...
- 删除数组中指定的元素
问题描述 使用C++实现数组中指定元素的删除. #include <iostream> #include <vector> using namespace std;int re ...
- java删除有序数组中的重复元素_java去除已排序数组中的重复元素
题目描述 给定一个已排序的数组,去除数组中的重复元素,只保留一个重复的元素,并且返回新的数组长度. 要求: 不要给数组分配额外的空间,你必须使用常量的内存大小进行原地操作. 例如: 给出数组A=[1, ...
- JavaScript 删除某个数组中指定的对象
返回对象在数组中的下标: _arr表示一个Array数组,里面包括了很多的对象如下图: _obj表示某一个数组对象 function getIndex (_arr,_obj) {var len = _ ...
- java删除有序数组中的重复元素_算法刷刷刷Leetcode第26题删除排序数组中的重复项...
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度.不要使用额外的数组空间,你必须在原地修改输入数组 并在使用 O(1) 额外空间的条件下完成.示例 ...
- 定义一个正整数的数组arr,删除arr数组中指定索引的元素,删除元素后面的元素需要往前移动,并且最后的索引位置用-1补上
import java.util.Arrays;public class practice8 {public static void getArray(int[] arr, int index){fo ...
- leetcode 26. 删除排序数组中的重复元素
题目 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下 ...
最新文章
- 5.C#-if-else分支语句结构
- SpringMVC数据库链接池,以及其他相关配置
- NYOJ 1076 方案数量(公式 或 递推)
- 【Lucy-Richardson去卷积】迭代加速算法
- Dubbo面试 - dubbo 负载均衡策略和集群容错策略都有哪些?
- 解决ViewPager添加点击监听器无触发的问题
- Spring Boot通过配置文件区分测试和生产环境
- 由于 web 服务器上此资源的访问控制列表(acl)配置或加密设置,您无权查看此目录或页面。...
- Asp.net页面之间传递参数的几种方法荟萃
- 关于outlook签名图片大小的说明
- 如何登陆计算机服务器,电脑服务器怎样登陆
- 杰理之汤姆猫录音变声功能参考【篇】
- System Generator从入门到放弃(十)-ADC应用之音频信号采集与输出
- AirBulb:会唱歌的灯泡
- 2009年6月9日,博客再次改进的通报!
- Dingtalk 发送消息
- A Physics-based Noise Formation Model for Extreme Low-light Raw Denoising论文学习理解
- ios非常全的库iOS开发 非常全的三方库、插件、大牛博客等等
- 【分圆多项式及理想、理想格】
- 树莓派右上角颜色块含义(供电, 散热)
热门文章
- java String类常用的方法
- linux 如何解压.exe,linux下解压火狐浏览器压缩包 ./filefox 运行可执行程序报错问题...
- C# USB视频人脸检测
- Python数据科学|第一章:数据科学家的武器库
- [转载] Linux进程基础
- JAVA获取服务器路径的方法
- 通過腳本實現zabbix的安裝
- 使用Vitamio打造自己的Android万能播放器(6)——在线播放(播放列表)
- Primavera P6 安装配置指南
- Visual SourceSafe(VSS)使用手册(转载)