精华内容
下载资源
问答
  • Java循环中remove方法的使用

    千次阅读 2017-05-30 21:31:28
    Java循环中remove方法的使用首先看下如下代码public class Test { public static void main(String[] args) { List<String> ll = new ArrayList(); ll.add("1"); ll.add("2"); ll.add("3"); ll.add("4"); ll.add("5...

    Java循环中remove方法的使用

    首先看下如下代码

    public class Test
    {
    public static void main(String[] args)
    {
    List<String> ll = new ArrayList();
    ll.add("1");
    ll.add("2");
    ll.add("3");
    ll.add("4");
    ll.add("5");
    ll.add("6");
    for (String value : ll)
    {
    if ("3".equals(value))
    {
    ll.remove(value);
    }
    }
    System.out.println(ll);
    }
    }

    目测打印的结果应该是[1, 2, 4, 5, 6],但运行的时候报ConcurrentModificationException

    Exception in thread "main" java.util.ConcurrentModificationException
    at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859)
    at java.util.ArrayList$Itr.next(ArrayList.java:831)
    at com.model.proxy.Test.main(Test.java:17)
    

    原因

    对于for(),java 虚拟机会将其翻译成Iterator迭代器,
    java编译器中含有:hasNext()函数,而hasNext()函数中含有:size()函数,这意味着list数组的大小是动态生成的,它是使用index!=size()来判定是否有下一个元素的,理论上只有最后元素才回返回false,其它元素都会返回true,一旦返回了true就会调用next,这样在调用next的过程中就会调用concurrentExceptions,在for()中,不容许调用remove()函数。这也就解释了,删除倒数第二个数,不会导致报错,因为在判断倒数第二个数的时候,index!=size直接返回false,这样没有next
    ,也就不存在next的调用了。

    解决方案

    一.比较笨的一个方法,再新建一个list,将需要删除的元素放到新建的list中,然后调用原来list的removeAll()方法

    public class Test
    {
    public static void main(String[] args)
    {
    List<String> ll = new ArrayList();
    
    List<String> l = new ArrayList();
    ll.add("1");
    ll.add("2");
    ll.add("3");
    ll.add("4");
    ll.add("5");
    ll.add("6");
    for (String value : ll)
    {
    if ("3".equals(value))
    {
    l.add(value);
    }
    }
    ll.removeAll(l);
    System.out.println(ll);
    }
    }

    二.使用迭代器的remove()方法

    public class Test
    {
    public static void main(String[] args)
    {
    List<String> ll = new ArrayList();
    ll.add("1");
    ll.add("2");
    ll.add("3");
    ll.add("4");
    ll.add("5");
    ll.add("6");
    Iterator it = ll.iterator();
    while(it.hasNext()){
    String value = (String)it.next();
    if("3".equals(value)){
    it.remove();
    }
    }
    System.out.println(ll);
    }
    }
    展开全文
  • [JAVA]List的remove函数

    千次阅读 2019-03-11 22:32:07
    这个java的list啊,还是挺坑的… 他有两个remove E remove(int x); 这个是直接删除x位置的元素然后返回他的… boolean remove(Object x); 这个是删除list里面的x元素,然后返回是否删除… 千万注意如果要使用第一...

    这个java的list啊,还是挺坑的…
    他有两个remove

    E remove(int x);
    

    这个是直接删除x位置的元素然后返回他的…

    boolean remove(Object x);
    

    这个是删除list里面的x元素,然后返回是否删除…

    千万注意如果要使用第一个的时候不要传入了Integer ,不然会当成参数是对象而去执行第二个函数…

    展开全文
  • 下面小编就为大家带来一篇浅谈java Iterator.remove()方法的用法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • Java List的remove()函数的重载

    千次阅读 2017-06-08 16:35:16
    对于Java的List接口,有remove()函数,根据其参数类型的区别,有以下两种实现: remove(int index)  移除列表指定位置的元素 remove(Object o)  从此列表移除第一次出现的指定元素(如果存在...

    对于Java的List接口,有remove()函数,根据其参数类型的区别,有以下两种实现:

    remove(int index) 

    移除列表中指定位置的元素

    remove(Object o) 

    从此列表中移除第一次出现的指定元素(如果存在)


    现在有一个问题,如果List中存的是int型值,那么remove()函数的参数是一个int值的时候,是默认调用第一个函数还是第二个函数呢?

    因此做了如下测试:

    ArrayList<Integer> a=new ArrayList<Integer>();
    a.add(5);
    a.add(4);
    a.add(3);
    a.add(2);
    a.add(1);
    a.remove(2);//默认使用remove(index)函数
    for(int i:a){
        System.out.print(i+", ");
    }
    结果为:
    5, 4, 2, 1, 

    因此可以知道,这里默认调用的是第一个remove函数,也就是移除列表中指定位置的元素。

    展开全文
  • Java集合remove()方法

    千次阅读 2020-12-01 15:39:17
    Java集合remove()方法 一、remove()方法的两种移除方式 根据下标移除 根据内容移除 二、例子 步骤1: ArrayList list = new ArrayList(); list.add(1); list.add(4); list.add(3); 步骤2: list.remove(4...

    Java集合中的remove()方法

    一、remove()方法的两种移除方式

    • 根据下标移除

    • 根据内容移除

    二、例子

    步骤1:

    ArrayList list = new ArrayList();
    list.add(1);
    list.add(4);
    list.add(3);
    

    步骤2:

    list.remove(4);         //运行程序会下标越界
    

    分析:直接输入一个整数如4,在没有声明变量类型的时候程序默认是int型,即使你在编译器里选用的是Object(对象)方法,程序运行时也是根据重载的机制以传入参数的类型而调用方法,因此list.remove(4)调用的是根据数组下标删除数据的方法

    步骤3:

     list.remove((Integer)4);       //运行程序删除4那个数据
    

    分析:4从int型被转为Integer型,程序运行时根据对象类型调用remove(Object)方法。

    步骤4:

    list.get(0);     //结果是1
    

    步骤5:

    list.remove(0);    //结果list对象是个空
    

    Java集合中的remove()方法

    展开全文
  • Java知识体系最强总结(2021版)

    万次阅读 多人点赞 2019-12-18 10:09:56
    本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同...
  • java list remove正确使用方法

    千次阅读 2018-04-13 09:18:30
    删除 List 的元素会产生两个问题:删除元素后 List 的元素数量会发生变化;对 List 进行删除操作可能会产生并发问题;我们通过代码示例演示正确的删除逻辑public class ArrayListRemove { public static void ...
  • HashSet类的remove()方法 (HashSet Class ...remove() method is available in java.util package. remove()方法在java.util包中可用。 remove() method is used to remove the given object (ob) from this Hash...
  • 关于Java中map函数的使用

    万次阅读 多人点赞 2018-10-29 19:28:04
    3 import java.util.HashMap; 4 import java.util.Map; 5 6 //map使用方法 7 public class MapDemo { 8 9 public static void main(String[] args) { 10 // map实例化 11 Map&lt;String, In...
  • java中JFrame中函数removeAll的用法

    千次阅读 2013-06-13 23:51:28
    下面用自己的代码来解释下removeAll()的用法 注意一定要在getContentPane()中用removeAll(); import javax.swing.JButton; import javax.swing.JFrame; public class Main extends JFrame{
  • 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。 示例 2: 给定 nums = [0,0,1,1,1,2,2,3,3,4], 函数应该返回新的长度 5, 并且原数组 nums 的
  • Java面试题大全(2020版)

    万次阅读 多人点赞 2019-11-26 11:59:06
    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java ...
  • 队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。 LinkedList类实现了Queue接口,因此我们可以把LinkedList当成...每一行的两个函数,实现的功能是一样的,但也有所不同...
  •  remove()函数删除的是迭代器所指向位置左边的对象,因为要删除某一对象,需要先用next()函数访问,访问之后迭代器的位置就更新了,因此调用remove()的时候删除的是左边的对象,为非hasnext()时的右边的对象。...
  • JavaremoveAll

    千次阅读 2018-01-14 15:03:00
    在处理归并不同集合时去除其重复元素的时候没有什么好的方法,本来打算手撸一个去处重复元素的函数,但是想起集合类里肯定有解决这一问题的方法,就去查了一下 API ,还真有,那就是使用 removeAll() 。 boolean ...
  • java集合,list列表应该是我们最常使用的,它有两种常见的实现类:ArrayList和LinkedList。ArrayList底层是数组,查找比较方便;LinkedList底层是链表,更适合做新增和删除。但实际开发,我们也会遇到使用...
  • 虽然ArrayList是可变数组,但是为了提高性能我们在使用应尽量提前估算容量,add()的时间复杂度为O(1),但是扩容会拉低性能,所以定义时应估算容量,减少扩容次数;remove()方法,每次删除要移动后边数组,所以时间...
  • 一些基本的用法大家都知道,这里就不提了,这里记录的remove相关方法的返回值的问题1 Map Map的remove方法源码: public V remove(Object key) 由此可以看出remove方法是有返回值的,可以用一个类型去接收的 HashMap...
  • 在Queue,有 offer、add、poll、remove、peek、element六个方法 public interface Queue<E> extends Collection<E> { boolean add(E e); boolean offer(E e); E remove(); .
  • 2020最新Java常见面试题及答案

    万次阅读 多人点赞 2019-10-26 15:53:35
    Java最新常见面试题 + 答案汇总 1、面试题模块汇总 面试题包括以下十九个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、...
  • java 常用模板函数

    千次阅读 2018-04-11 10:25:11
    java 求两个数的最大公约数,可以尝试用 BigInteger tmp1=new BigInteger(Integer.toString(i)); BigInteger tmp2 = new BigInteger(Integer.toString(j)); tmp1.gcd(tmp2).intValue() 可能更快 最小公...
  • Java队列的基本函数

    2020-03-21 00:30:40
    import java.util.LinkedList; import java.util.Queue; public class Main { public static void main(String[] args)... //add()和remove()方法在失败的时候会抛出异常(不推荐) Queue<String> queue = n...
  • java函数--返回多个值

    万次阅读 2017-10-07 17:21:50
    在开发过程,经常会有这种情况,就是一个函数需要返回多个值,这是一个问题!! 网上这个问题的解决方法: 1、【使用集合类】使用map返回值;这个方法问题是,你并不知道如何返回值的key是什么,只能通过doc或者...
  • Java知识体系最强总结(2020版)

    千次阅读 多人点赞 2020-03-07 08:35:51
    本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同...
  • import java.util.ArrayList; /** * 测试ArrayList的用法<>,填入是泛型参数,要装入的数据的类型 * ArrayList是一种集合数据类型,它可以装任意多个具体的数据,而且长度可以变 * 重要功能 add() 添加...
  • 今天被ListView各种数据状态改变搞得烦心时突然想到list的remove方法移除的对象与下标重合了会发生发生?举个例子就是arraylistadd 1 2 3 4,这时候list.remove(1)会移除对象1还是下标为一的2?动手一实验,打印...
  • 队列接口的poll()vs remove()方法 (poll() vs remove() methods of Queue Interface ) Here, we will see how poll() method differs from remove() method of ... 在这里,我们将看到poll()方法与Java中Queue接口的...
  • 1)Python del函数 (1) Python del function) del is nothing but "delete". del is a keyword which basically goes on the position given by the user in del(position) and deletes that element and also ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 161,553
精华内容 64,621
关键字:

java中的remove函数

java 订阅