java Set 中 removeAll 与 addAll

有两个set,如果其中一个set A的参数和另外一个set B的参数重复,那么减去他们重复的参数,剩下的参数形成一个新的set C.
set1.removeAll(set2)可以删除set1里面和set2重复的所有参数。

如果你需要一个合集,可以简单那的set1.addAll(set2); 这样set1里面就是所有的参数了。
java代码如下:
package com.javaCode.package05;  
import java.util.*;  
public class a { 	
	public static void main(String[] args) { 		
		Set setInt = new HashSet(); 		
		Set setString = new HashSet(); 		 		
		setInt.add(1); 		
		setInt.add(2); 		
		setInt.add(3); 		 		
		setString.add(1); 		 		
		setInt.addAll(setString); 		
		System.out.println(setInt.size());  		
		setInt.removeAll(setString); 		
		System.out.println(setInt.size()); 		
		System.exit(0); 		 	
	}
 }
输出结果:3    2 
时间: 2025-01-07 19:07:51

java Set 中 removeAll 与 addAll的相关文章

Java里 ArrayList 中 add 与addAll的区别

我们经常都有这样的需求,需要把一个list的数据全部放到另一个list当中,最笨的方法当然是一个个遍历进行添加,但是Java中提供一个addAll方法. 与add方法不一样的是,add方法是添加一个item,不管你是一个什么类型的数据,都给放到item里作为一个数据进行添加.而addAll则是对相同类型的数据,对现有的list进行拼接(可能说法不严谨).举个例子: 下面有两个List,我想将第二个List的数据添加到第一个List当中,用add方法的话是这样添加的: for(String ite

【Java心得总结五】Java容器中——Collection

在[Java心得总结五]Java容器上——容器初探这篇博文中,我对Java容器类库从一个整体的偏向于宏观的角度初步认识了Java容器类库.而在这篇博文中,我想着重对容器类库中的Collection容器做一个着重的探索与总结. Collection:一个独立元素的序列,这些元素都服从一条或多条规则.(注:Collection其实就是将一组数据对象按照一维线性的方式组织起来)List必须按照插入的顺序保存元素,而set不能有重复元素.Queue按照排队规则来确定对象产生的顺序(通常与它们被插入的顺序

Java 7中的TransferQueue 以及 SynchronousQueue

Java7中加入了JSR 166y规范对集合类和并发类库的改进.其中的一项是增加了接口TransferQueue和其实现类LinkedTransferQueue. TransferQueue继承了BlockingQueue(BlockingQueue又继承了Queue)并扩展了一些新方法.BlockingQueue(和Queue)是Java 5中加入的接口,它是指这样的一个队列:当生产者向队列添加元素但队列已满时,生产者会被阻塞:当消费者从队列移除元素但队列为空时,消费者会被阻塞. Transf

java注解中的元注解

一:java注解中的元注解 四个元注解分别是:@Target,@Retention,@Documented,@Inherited , 再次强调下元注解是java API提供,是专门用来定义注解的注解,其作用分别如下: @Target 表示该注解用于什么地方,可能的值在枚举类 ElemenetType 中,包括: ElemenetType.CONSTRUCTOR----------------------------构造器声明 ElemenetType.FIELD ----------------

Java NIO中的缓冲区Buffer(一)缓冲区基础

什么是缓冲区(Buffer) 定义 简单地说就是一块存储区域,哈哈哈,可能太简单了,或者可以换种说法,从代码的角度来讲(可以查看JDK中Buffer.ByteBuffer.DoubleBuffer等的源码),Buffer类内部其实就是一个基本数据类型的数组,以及对这个缓冲数组的各种操作: 常见的缓冲区如ByteBuffer.IntBuffer.DoubleBuffer...内部对应的数组依次是byte.int.double... 与通道的关系 在Java NIO中,缓冲区主要是跟通道(Chann

Java开发中的23种设计模式详解(转)

设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样.项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周

JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结(转)

hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和学习,使自己在做项目中更加得心应手. 第一方面:开发速度的对比 就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些.Mybatis框架相对简单很容易上手,但也相对简陋些.个人觉得要用好Mybatis还是首先要先理解好Hibernate. 比起两者的开发速度,不仅仅要考虑到两者的特性及性能,更要根据项目需求

java开发中的那些事(5)--------一点经历,败给2分钟的2个小时

特意记下这个经历,这个让我感慨万千又斗志昂扬的一次经历,这是经验,也是生活. 故事的始末是这样的,先给大家上几句代码,现在身在家中,只能凭记忆敲打几行,大致意思倒不会错: {field:'code',align:'center'} {field:'btfid',align:'center',hidden:'true', formatter:function(value,row,rowIndex){ return "<a href="javascript:void(0)"

Java泛型中的PECS原则

今天在写代码的时候使用到了这样一个方法签名: public void foo(Map<String, String> map); 在写这个参数的时候正好在想一些关于泛型的东西,于是: public void foo(Map<? extends String, ? extends String> map); 这两种写法有什么区别呢?记得以前和同学讨论过这个问题,但后来没有记下来,渐渐又淡忘了.今天又去翻了好多资料,总算找到一些可以参考的,赶紧记在这里方便以后温故知新啦.好了,言归正传