A和B两个数组,删除B中与A重复的元素

package com.kt.test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ArrayTest {
    public static void main(String[] args){
        List<String> list = new ArrayList<String>();
        String[] str1 = {"Java", "C++", "Php", "C#", "Python"};
        String[] str2 = {"1", "C++", "2", "5", "Python"};
        List list1= Arrays.asList(str1);
        List list2= Arrays.asList(str2); 

        //方法一
        /*for(int i = 0;i<list2.size();i++){
            if(!list1.contains(list2.get(i))){
                list.add((String) list2.get(i));
            }
        }*/

        //方法二 报错
        for(int i=0;i<list1.size();i++){
            if(list2.contains(list1.get(i))){
                list2.remove(list1.get(i));
            }

        }

        for(String a : list){
            System.out.println("shuchu:"+a);
        }

    }
}
时间: 2024-09-29 08:38:12

A和B两个数组,删除B中与A重复的元素的相关文章

18 如何从一个数组中移除重复的元素

两种方法 (1) 使用LINQ (2) 使用List static void RemoveDups(string[] myStringArray) { // LINQ string[] str = myStringArray.Distinct().ToArray(); // Array to List to Array List<String> myStringList = new List<string>(); foreach (string s in myStringArray

Python封装函数:实现删除一个list里面的重复,且元素顺序要与原list顺序对应

封装函数:实现删除一个list里面的重复,且元素顺序要与原list顺序对应 代码:def info(l):l1 = l[:]for i in range(len(l)):v = l.count(l[i])if l1.count(l[i]) > 1:for j in range(1, v):l1.remove(l[i])return l1 print(info([1, 2, 3, 4, 2, 3, 6, 2])) 思想:统计相同元素出现的次数,然后删除到1 原文地址:http://blog.51c

[两个指针]删除字符串中指定的字符

删除字符串中指定的字符 输入 char *a = "abc123"; char *del = "a13"; 利用两个字符指针的方式,pslow,pfast; char *pslow,*pfast; 两个指针一开始都指向字符串的开始位置; pfast开始遍历字符串, if(*pfast==指定字符){////这里疑惑的地方就是,pslow什么时候向前滑行 将pfast所指字符,移到pslow的位置(就是赋值操作,*pslow = *fast) pslow++; pfa

LeetCode -- 删除链表中值为k的元素

本题目比較直接,一次遍历遇到匹配的元素直接删除(通过n.next = n.next.next)就能够了,仅仅是须要考虑到:1.首节点的情况2.末节点的情况 下面为实现: public ListNode RemoveElements(ListNode head, int val) { // null list if(head == null){ return null; } // constains only one node if(head.next == null && head.val

建立一个单链表,并删除链表中值为W的元素

#include<iostream> #include<algorithm> #include<string.h> #include<stdio.h> #include<malloc.h> using namespace std; typedef struct node { int data; struct node *next;//指向类型完全相同的指针 int len; } Lnode,*Linklist; //一个是结构体类型,一个是结构体

判断数组中是否有重复的元素

bool containsDuplicate(vector<int>& nums) { return !(nums.size() == unordered_set<int>(nums.cbegin(), nums.cend()).size());}

删除表中多余的重复记录,只留有rowid最小的记录

参考 http://www.cnblogs.com/chy1000/archive/2010/03/02/1676282.html DELETE FROM student WHERE sname  IN  (SELECT  a.sname  FROM  (SELECT tmp.* FROM student tmp)a  GROUP  BY  a.sname   HAVING  COUNT(a.sname) > 1) AND sno NOT IN  (SELECT MIN(a.sno) FROM 

找出两个数组的相同元素,最优算法?

在做新旧接口交替过程中,遇到了老接口和新接口json数据有些不一致的情况,需要比较两个json对象,把相同的元素赋其中一个json对象中变量的值.而且其中一个json最后输出格式还需要改变下属性名,思来想去觉得和"找出两个数组相同元素"很像,所以做下总结. "有一个数组A{0,2,3,5}和一个数组B{3,5,6,2,1,1},找出这两个数组相同元素." 一开始抽象出这道题时,脑海里浮现出最简单粗暴的方法,逐一比较. //最简单粗暴的做法,逐个比较,时间复杂度为(B

防止数组删除元素时发生指针偏移

[Python]删除数组多个元素所产生的问题 #-*-coding:utf-8-*- arr=[1,2,3]; for a in arr: if a<3: arr.remove(a); print arr;我本来想用数组中自动封装好的remove()方法,删除数组arr中少于3的元素. 这个方法删除数组中单个元素是没有任何问题,但是如果想删除arr中,少于3的元素问题就来的. arr中有三个元素,1,2,3,少于3的元素有2个,删除之后很显然只是剩下[3],我开始也是这样认为,但是运行结果却是[