Java Collection Framwork中的equals方法

刚刚看到Set的equals方法,从Collection到Set,没有多了什么别的方法,不过多了些限制,比如Set的中的元素不能重复(不会有e1和e2都属于一个Set,且e1.equals(e2)这种情况),然后就是在equals方法上的限制,两个Set equals当且仅当它们有着相同的elements(就是对于任意set1中的e1,在set2中一定存在一个e2,e1.equals(e2)返回true,同时对于Set2中的任意一个e2,Set1中存在e1,e2.equals(e1)返回true,这里我不考虑有些Set允许加入null那种情况),一个例子如下:

import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.TreeSet;

public class Test {

	public static void main(String[] args) {
		String[] sa = {"abc", "spam", "ham", "egg", "dog"};
		Collection<String> cs = Arrays.asList(sa);
		HashSet<String> set1 = new HashSet<String>(cs);
		TreeSet<String> set2 = new TreeSet<String>(cs);
		LinkedHashSet<String> set3 = new LinkedHashSet<String>(cs);
		System.out.println(set1.equals(set2));
		System.out.println(set1.equals(set3));
		//set1.add(null);
		//set2.add(null);
		//set3.add(null);
		System.out.println(set2.equals(set3));
	}
}
有些Set允许至多有一个null(例如HashSet和LinkedHashSet),有些不允许有null(例如TreeSet),这里就不考虑了。(有null和没有null是不一样的)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值