精华内容
下载资源
问答
  • list集合中移除其中的一个元素

    千次阅读 2018-10-26 17:27:10
    今天写项目遇到的问题,从list集合中删除一个确定的元素,如果用for each循环--使用list.remove()删除的话,程序会报错,但是如果在删除完成后 使用break结束当前循环的话 就不会报错了 所以百度了一下使用迭代器...

    今天写项目遇到的问题,从list集合中删除一个确定的元素,如果用for each循环--使用list.remove()删除的话,程序会报错,但是如果在删除完成后 使用break结束当前循环的话 就不会报错了

    所以百度了一下使用迭代器进行删除

    展开全文
  • * 从listA删除listB有的数据 * @param listA * @param listB * @return */ public static List<String> listrem(List<String> listA,List<String> listB){ ...
    /**
         * 从listA里删除listB里有的数据
         * @param listA
         * @param listB
         * @return
         */
        public static List<String> listrem(List<String> listA,List<String> listB){
            for (Iterator<String> itA = listA.iterator(); itA.hasNext();)
            {
                String temp = itA.next();
                // itA.next() 只能在外层循环里面调用1次
                for (int i = 0; i < listB.size(); i++)
                {
                    if (temp.equals(listB.get(i)))
                    // 你不该在这里多次调用itA.next()的
                    {
                        itA.remove();
                    }
                }
            }
            return listA;
        }

     

    /**
          * 获取listA单方面的相同和不同
          * @param listA     源数据
          * @param listB     对比值
          * @param listC     相同的
          * @param listD      不同的
          * @return list<String>
          */  
         public static List<String> getDifferListByMap(List<String> listA,List<String> listB){  
             List<String> listC = new ArrayList<String>();  
             List<String> listD = new ArrayList<String>();  
             Map<String,Integer> map = new HashMap<String,Integer>();  
             for(String strA:listA){  
                 map.put(strA.replace(" ", ""), 1);  
             }  
             for(String strB:listB){  
                 Integer value = map.get(strB.replace(" ", ""));  
                 if(value != null){  
                     listC.add(strB);
                     continue;  
                 }else{
                     listD.add(strB);
                     continue;  
                 }
             }  
             return listD;
         }  
        

     

    转载于:https://www.cnblogs.com/java-h/p/10675856.html

    展开全文
  • 移除list中的一个元素

    千次阅读 2017-02-24 18:38:10
    移除list中的一个元素为什要写这个,因为,我的一个同事,工作一年了,写这段代码的时候,出了错。 他的写法如下for (int i = 0; i < typeList.size(); i++) { if ("two".equals(typeList.get(i))) { typeList....

    移除list中的一个元素

    为什要写这个,因为,我的一个同事,工作一年了,写这段代码的时候,出了错。
    他的写法如下

    for (int i = 0; i < typeList.size(); i++) {
        if ("two".equals(typeList.get(i))) {
            typeList.remove(i);
        }
    }

    这段代码暴露的其他问题暂且不提,只说list,
    如果是一年前的我,估计也是这样的做法,
    然而,工作近两年的我,踩过的坑也不少了,
    至少知道了一点:移除list的元素不能用循环,得用迭代器
    如下

    Iterator<String> iter = list.iterator();
    while(iter.hasNext()){
        String s = iter.next();
        if(s.equals("two")){
            iter.remove();
        }
    }

    可是他不懂,为什么这样循环会有问题,于是,我跟他分析了一下(别问我他为什么不懂,鬼知道他为什么不自己想一下)
    原因如下
    这里如果用循环来移除,会造成遗漏,比如把第0个移除,那么原本list中的的第一个就变成了第0个,这时候,第二次循环中这个元素(现在的第0个,原本的第一个)会被跳过,因为此时i = 1。
    他说:我就习惯这样写,这样写能改一下,把坑填上吗?
    我稍微思索了一下,可以试试if中增加i=i-1,
    类似跳过的还有continue,和跳出的break,至于goto,就不说了,基本用不到
    然后我又想起了之前微信群里别人说的,可以倒过来遍历
    于是和他分析了一下,为什么倒过来遍历是可以的
    因为删除list中的元素,影响的是:被删位置之后的元素的位置,之前的元素位置不会影响,倒着循环,就算删除了一个元素,接下来遍历的是更前面的元素,这些元素没有被移动改变,所以倒着可行。

    今天查看LocalBroadcastManager源码,发现了他也在遍历list的时候移除一个item
    代码如下:

        for (int k=0; k<receivers.size(); k++) {
            if (receivers.get(k).receiver == receiver) {
                receivers.remove(k);
                k--;
            }
        }

    看见这段代码,内心瞬间欣喜
    为啥,因为我回想起了我学习C语言(面向过程)的经历,在那段时期,如果类似的代码,我肯定也会这样写,而不会倒着循环,也不会去用迭代器,
    为啥,
    就因为习惯这样,熟悉这样,喜欢这样
    同一段逻辑的不同的代码实现,能表现出来的除了每个人的经验,还有每个人的思维方式。
    顺带一提,那时候我应该是大一,只学了C语言,而现在,我用的是java

    图片


    关注我的微信公众号,里面会有一些我也不知道是啥的东西

    pageTan

    展开全文
  • 集合当中相同的对象内容一致却无法移除的原因是因为两者的id或者hashcode不一致导致的,我自己的解决方法是在实体类上重写hashcode()方法和equals()方法,然后removeall()就可以了。public class Page { ...

    两个集合当中相同的对象内容一致却无法移除的原因是因为两者的id或者hashcode不一致导致的,我自己的解决方法是在实体类上重写hashcode()方法和equals()方法,然后removeall()就可以了。

    public class Page {
    private String id;
    private String name;

    public String getId() {
        return id;
    }
    
    public void setId(String id) {
        this.id = id;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    @Override
    public int hashCode() {
        int hash = 0;
        if (!StringUtil.isEmpty(getId())) {
            hash += 21 * getId().hashCode();
        }
        if (!StringUtil.isEmpty(getName())) {
            hash += 21 * getName().hashCode();
        }
        return hash;
    }
    
    @Override
    public boolean equals(Object obj) {
    
        if (obj == null || !(obj instanceof Page)) {
            return false;
        }
        Pagetar = (Page) obj;
        if (!StringUtil.isEmpty(this.getId())) {
            if (!this.getId().equals(tar.getId())) {
                return false;
            }
        }
        if (!StringUtil.isEmpty(this.getName())) {
            if (!this.getName().equals(tar.getName())) {
                return false;
            }
        }
        return true;
    }
    

    }

    展开全文
  • kotlin List移除一个元素,添加一个元素时没有 remove和add函数只有 -= 和 += 在kotlin ArrayList中才有remove和add函数 没有 -= 和 += kotlin List删除一个元素如下图 Kotlin之数组和集合 ...
  • Java 移除List中的元素,这玩意讲究!

    千次阅读 多人点赞 2021-01-17 13:47:00
    前阵子,名java初学者遇到了list 使用remove的问题,当时我暂且给他说了种解决方案。 事后,我细想, 是不是很多初学者都会碰到这种问题? 虽然阿里开发手册里面有说到这坑,但是是不是每人都清楚? 这...
  • 1 2 3 a = [1, 2, 3, 4, 5, 6] b = a.pop() print(b)   1 2 3 a = [1, 2, 3, 4, 5, 6] del a[-1] print(a) ... ...
  • Python List 删除 另一个list里面的元素

    千次阅读 2020-04-13 09:02:00
    #!/usr/bin/python x = ['d','d','a','b','c'] y = ['d','a'] z = [] for m in x: if m not in y: z.append(m) print(z)
  • 需求: mAllList 中去除所有 mSubList 中与之重复的元素 测试数据:mAllList 中包含100000无序无重复字符串,mSubList 中包含50000无序无重复字符串 方法、ArrayList中提供的removeAll方法(效率最低) ...
  • List移除元素

    万次阅读 多人点赞 2019-03-04 16:33:02
    方式,使用 Iterator ,顺序向下,如果找到元素,则使用 remove 方法进行移除。 方式二,倒序遍历 List ,如果找到元素,则使用 remove 方法进行移除。 方式三,正序遍历 List ,如果找到元素,则使用 remove 方法...
  • List集合数据移除(List.subList.clear)

    千次阅读 2020-10-21 23:11:52
    这两天遇到这么一个问题:一个集合的数据当作参数传入,现在分段使用这个集合的数据,使用完的数据需要在这个集合中被移除,方便获取第二段的数据。 假设:一个集合的数据长度是11个,现分两段使用这个集合,第一段...
  • 开始太傻,用了几种不同的方法,记录总结一下,下次长点记性: 首先想到用remove()和pop()函数 用这两删除数列元素,但是发现它们会删除了数列后,for循环不会更新序号,还是解决不了问题,然后看了一些帖子,...
  • // 移除前3 list.subList(0, 3).clear(); // 移除后3 list.subList(list.size() - 3, list.size()).clear();
  • //List&lt;long&gt;类型 List&lt;Long&gt; list=new ArrayList&lt;&gt;(); List&lt;Long&gt; list1=Arrays.asList(1L,2L,3L,4L,5L,6L); List&lt;Long&...
  • 代码只有经过多线程、效率和安全的考研,才算是优秀的代码JDK...遍历List的时候不允许并发操作本次需求:已有的List列表中移除typeId是3和4的对象准备:/** * 遍历移除List中符合条件的元素 * 可能产生问题: * ...
  • 移除List集合中特定的元素

    万次阅读 2019-04-15 10:55:19
    1.移除List<String>中指定元素 public static void remove(List<String> list, String target){ for(int i = list.size() - 1; i >= 0; i--){ String item = list.get(i); ...
  • list集合移除指定元素

    万次阅读 2019-06-14 14:40:17
    定义一个list集合,并添加数据: List<String> list=new ArrayList<>(); list.add("b"); list.add("e") list.add("b"); list.add("c"); 需求:删除该集合中所有字符串为b的数据,代码如下: for...
  • 获取list的最后一个对象 List.get(List.size()-1); 移除list的最后一个对象 List.remove(List.size()-1);
  • java中List元素移除元素的那些坑

    万次阅读 2019-07-20 09:18:00
    本文主要介绍,java中list集合移除元素的那些坑,今天小编就和大家起来了解一下吧!、问题案例1.1、for循环移除public static void main...
  • JAVA8 移除相同的List对象

    千次阅读 2020-05-09 15:04:22
    JAVA8 移除相同的List对象 List<Data> data1 = new ArrayList<>(); data1.add(new Data(7, 15)); data1.add(new Data(2, 17)); data1.add(new Data(2, 17)); List<Data> data2 = new ...
  • python 删除list中的第一个元素 坑

    万次阅读 2019-12-08 13:01:54
    1.默认删除最后一个元素.pop()中也可以传入参数,为list的索引 2.pop() 接收的是索引,无参的情况下删除的是最后一个元素(典型的栈的特性) 3.pop() 存在返回值,返回的是删除的元素值 list=[1...
  • 详解 .NET Core 遍历 List移除

    万次阅读 2019-10-02 12:19:54
    在开发过程中时常会遇到需要遍历集合并移除指定项的场景,我们用不同方法来尝试获得我们希望的结果。 首先声明将要用到的 list 对象。 var list = new List<string>() { "Item1", "Item2", "Item3", "Item3...
  • JAVA中循环遍历list有三种方式: for循环、增强for循环(也就是常说的foreach循环)、iterator遍历。1、for循环遍历listfor(int i=0;i&lt;list.size();i++){ if(list.get(i).equals("abc")) list....
  • Java List移除指定对象

    千次阅读 2019-12-21 07:48:21
    * 移除指定对象 * @param users * @param username */ public static void removeSpecifiedObject(List<User> users, String username) { int size = labels.size(); for (int i = size - 1; i >...
  • 正确移除List中对象

    千次阅读 2017-06-01 11:18:00
    list一个ArrayList的对象,哪个选项的代码填到//todo delete处。能够在Iterator遍历的过程中正确并安全的删除一个list中保存的对象?() Iterator it = list.iterator(); int index = 0; while (it.hasNext...
  • 在C#的List集合操作中,移除集合中的元素可以使用Remove方法和RemoveAt方法,这两方法都是进行单个List集合元素的移除,其实List集合中还有RemoveRange方法来移除一整段连续的List集合元素对象,RemoveRange方法...
  • redis 对list的操作 移除其中单一元素

    千次阅读 2020-07-02 18:09:38
    LPOP:移除并获取链表中的第一个元素。 RPOP:移除并获取链表中最后一个元素。 LTRIM:保留指定区间内的元素。 LLEN:获取链表的长度。 LSET:用索引设置链表元素的值。 LINDEX:通过索引获取链表中的元素。 LRANGE:...
  • 、背景 本文重点探讨 foreach 循环中移除元素造成java.util.ConcurrentModificationException 异常的原因。 先看《阿里巴巴 Java开发手册》中的相关规定: 那么思考几问题: 反例的运行结果怎样? ...
  • 我想到了两种,一共有两种方法,一个是用的map , 还有的是使用的是 迭代器的写法, 都是可以进行抽取的,第一种是不区分对象的类型的,而第二中抽取的方法的局限性很大的,可扩展性不强的 import java.util.*; /** * ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 321,145
精华内容 128,458
关键字:

从一个list里移除一个list