java set 比较_Java中比较两个SET是否相同

这篇博客介绍了如何在Java中自定义方法来检查两个Set集合的内容是否相同,通过比较它们的大小和是否包含所有元素。文章提供了equals()方法的实现,并使用单元测试进行验证,确保方法的正确性。测试覆盖了不同情况,包括元素数量不同、内容不一致以及忽略元素顺序的情况。
摘要由CSDN通过智能技术生成

java api中,好像没有发现比较两个set 的内容是否一样的方法,只能自己写一个来实现了,其实也比较简单,比较记录数是否一样,然后看内容是否一致, 测试的方法如下:public static boolean equals(Set set1, Set set2){

if(set1 == null || set2 ==null){

return false;

}

if(set1.size()!=set2.size()){

return false;

}

return set1.containsAll(set2);

}

走单元测试:import org.junit.Test;

import java.util.HashSet;

import java.util.Set;

import static org.hamcrest.MatcherAssert.assertThat;

import static org.hamcrest.Matchers.is;

public class TestSetUtils {

@Test

public void test1() {

Settest1 = new HashSet<>();

test1.add("a");

test1.add("b");

Settest2 = new HashSet<>();

test2.add("b");

test2.add("c");

assertThat(SetUtils.equals(test1, test2), is(false));

}

@Test

public void test2() {

Settest1 = new HashSet<>();

test1.add("a");

test1.add("b");

Settest2 = new HashSet<>();

test2.add("a");

test2.add("b");

test2.add("c");

assertThat(SetUtils.equals(test1, test2), is(false));

}

@Test

public void test3() {

Settest1 = new HashSet<>();

test1.add("a");

test1.add("b");

test1.add("c");

Settest2 = new HashSet<>();

test2.add("a");

test2.add("b");

assertThat(SetUtils.equals(test1, test2), is(false));

}

//set ignore sequence

@Test

public void test4() {

Settest1 = new HashSet<>();

test1.add("a");

test1.add("b");

Settest2 = new HashSet<>();

test2.add("b");

test2.add("a");

assertThat(SetUtils.equals(test1, test2), is(true));

}

@Test

public void test5() {

Settest1 = new HashSet<>();

test1.add("a");

Settest2 = new HashSet<>();

test2.add("a");

assertThat(SetUtils.equals(test1, test2), is(true));

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值