文章目录

  • 如何删除集合(数组)中指定的元素##
  • 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

如何删除集合(数组)中指定的元素相关推荐

  1. jQuery删除数组中指定的元素

    jQuery删除数组中指定的元素 方法:arr.splice($.inArray(元素, 数组), 删除的个数); var arr = ['a','b','c','d']; arr.splice($. ...

  2. 力扣 26.删除有序数组中的重复元素

    文章目录 题目 思路 AC代码 收获 题目 删除有序数组中的重复元素 思路 快慢指针.快指针不断向前走.判断快指针所指的数与快指针前面的数是否相等,如果相等就说明是重复的,要继续向后移动,如果不相等, ...

  3. js 删除对象数组中指定元素

    操作对象数组中指定条件的元素: 例: let arr = [{createDate: "2021-03-20",id: 1 }, {createDate: "2021-0 ...

  4. php删除数组中指定的元素,php如何删除数组中指定的元素?

    php删除数组中指定元素的方法:1.使用[array_splice()]函数删除,代码为[$key = array_search(3, $arr1)]:2.使用[unset()]函数删除,代码为[un ...

  5. 删除数组中指定的元素

    问题描述 使用C++实现数组中指定元素的删除. #include <iostream> #include <vector> using namespace std;int re ...

  6. java删除有序数组中的重复元素_java去除已排序数组中的重复元素

    题目描述 给定一个已排序的数组,去除数组中的重复元素,只保留一个重复的元素,并且返回新的数组长度. 要求: 不要给数组分配额外的空间,你必须使用常量的内存大小进行原地操作. 例如: 给出数组A=[1, ...

  7. JavaScript 删除某个数组中指定的对象

    返回对象在数组中的下标: _arr表示一个Array数组,里面包括了很多的对象如下图: _obj表示某一个数组对象 function getIndex (_arr,_obj) {var len = _ ...

  8. java删除有序数组中的重复元素_算法刷刷刷Leetcode第26题删除排序数组中的重复项...

    给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度.不要使用额外的数组空间,你必须在原地修改输入数组 并在使用 O(1) 额外空间的条件下完成.示例 ...

  9. 定义一个正整数的数组arr,删除arr数组中指定索引的元素,删除元素后面的元素需要往前移动,并且最后的索引位置用-1补上

    import java.util.Arrays;public class practice8 {public static void getArray(int[] arr, int index){fo ...

  10. leetcode 26. 删除排序数组中的重复元素

    题目 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下 ...

最新文章

  1. 5.C#-if-else分支语句结构
  2. SpringMVC数据库链接池,以及其他相关配置
  3. NYOJ 1076 方案数量(公式 或 递推)
  4. 【Lucy-Richardson去卷积】迭代加速算法
  5. Dubbo面试 - dubbo 负载均衡策略和集群容错策略都有哪些?
  6. 解决ViewPager添加点击监听器无触发的问题
  7. Spring Boot通过配置文件区分测试和生产环境
  8. 由于 web 服务器上此资源的访问控制列表(acl)配置或加密设置,您无权查看此目录或页面。...
  9. Asp.net页面之间传递参数的几种方法荟萃
  10. 关于outlook签名图片大小的说明
  11. 如何登陆计算机服务器,电脑服务器怎样登陆
  12. 杰理之汤姆猫录音变声功能参考【篇】
  13. System Generator从入门到放弃(十)-ADC应用之音频信号采集与输出
  14. AirBulb:会唱歌的灯泡
  15. 2009年6月9日,博客再次改进的通报!
  16. Dingtalk 发送消息
  17. A Physics-based Noise Formation Model for Extreme Low-light Raw Denoising论文学习理解
  18. ios非常全的库iOS开发 非常全的三方库、插件、大牛博客等等
  19. 【分圆多项式及理想、理想格】
  20. 树莓派右上角颜色块含义(供电, 散热)

热门文章

  1. java String类常用的方法
  2. linux 如何解压.exe,linux下解压火狐浏览器压缩包 ./filefox 运行可执行程序报错问题...
  3. C# USB视频人脸检测
  4. Python数据科学|第一章:数据科学家的武器库
  5. [转载] Linux进程基础
  6. JAVA获取服务器路径的方法
  7. 通過腳本實現zabbix的安裝
  8. 使用Vitamio打造自己的Android万能播放器(6)——在线播放(播放列表)
  9. Primavera P6 安装配置指南
  10. Visual SourceSafe(VSS)使用手册(转载)