首页 \ 问答 \ 比较treeset是否相等(compare treeset for equality)

比较treeset是否相等(compare treeset for equality)

我有两组HashSet ,我转换为TreeSet进行排序,以便于比较。 将HashSet转换为TreeSet 。 当我使用'equals'函数比较这两个TreeSet时,它表示它们是不同的。 我调试它,但它显示相同的内容和相同的顺序。 我无法理解什么是错的?

   public class TestProductBundle {
    @SuppressWarnings("unused")
    public static void main(String args[]) {

        // HashSet
        Set<ClassA> hashSetA = new HashSet<ClassA>() {
            {
                add(new ClassA("name", 1, "desc"));
                add(new ClassA("name", 2, "desc"));
                add(new ClassA("name", 3, "desc"));
            }
        };

        Set<ClassA> hashSetB = new HashSet<ClassA>() {
            {
                add(new ClassA("name", 1, "desc"));
                add(new ClassA("name", 2, "desc"));
                add(new ClassA("name", 3, "desc"));
            }
        };

        TreeSet<ClassA> treeSetA = new TreeSet<ClassA>(new CompareID()) {
            {
                addAll(hashSetA);
            }
        };

        TreeSet<ClassA> treeSetB = new TreeSet<ClassA>(new CompareID()) {
            {
                addAll(hashSetB);
            }
        };

        if (treeSetA.equals(treeSetB))
            System.out.println("Equal set of tree");
        else
            System.out.println("Unequal set of tree");   // this is result.
    }}

ClassA给出如下:

class ClassA {
String name;
int id;
String desc;

public ClassA(String name, int id, String desc) {
    this.name = name;
    this.id = id;
    this.desc = desc;
}

    int getId() {
        return id;
    }
}

class CompareID implements Comparator<ClassA> {
    @Override
    public int compare(ClassA o1, ClassA o2) {
        if (o1.getId() > o2.getId())
            return 1;
        else
            return -1;
    }
}

编辑:我试过if (treeSetA.containsAll(treeSetB) && treeSetB.containsAll(treeSetA)这个条件也。但同样的结果, "Unequal set of tree"


I have two sets of HashSet that i converted to TreeSet to sort it for ease of comparison. After converting HashSet to TreeSet. When i compare these two TreeSet using 'equals' function, it says they are different. I debug it, but it shows same content with same order. i can not understand what is wrong ?

   public class TestProductBundle {
    @SuppressWarnings("unused")
    public static void main(String args[]) {

        // HashSet
        Set<ClassA> hashSetA = new HashSet<ClassA>() {
            {
                add(new ClassA("name", 1, "desc"));
                add(new ClassA("name", 2, "desc"));
                add(new ClassA("name", 3, "desc"));
            }
        };

        Set<ClassA> hashSetB = new HashSet<ClassA>() {
            {
                add(new ClassA("name", 1, "desc"));
                add(new ClassA("name", 2, "desc"));
                add(new ClassA("name", 3, "desc"));
            }
        };

        TreeSet<ClassA> treeSetA = new TreeSet<ClassA>(new CompareID()) {
            {
                addAll(hashSetA);
            }
        };

        TreeSet<ClassA> treeSetB = new TreeSet<ClassA>(new CompareID()) {
            {
                addAll(hashSetB);
            }
        };

        if (treeSetA.equals(treeSetB))
            System.out.println("Equal set of tree");
        else
            System.out.println("Unequal set of tree");   // this is result.
    }}

ClassA gives below:

class ClassA {
String name;
int id;
String desc;

public ClassA(String name, int id, String desc) {
    this.name = name;
    this.id = id;
    this.desc = desc;
}

    int getId() {
        return id;
    }
}

class CompareID implements Comparator<ClassA> {
    @Override
    public int compare(ClassA o1, ClassA o2) {
        if (o1.getId() > o2.getId())
            return 1;
        else
            return -1;
    }
}

Edit: I tried if (treeSetA.containsAll(treeSetB) && treeSetB.containsAll(treeSetA) this condition also. But same result, "Unequal set of tree"


原文:https://stackoverflow.com/questions/39370180
更新时间:2023-05-14 17:05

最满意答案

我不认为这可以做到。 我能想到的最好的事情是在不同的位置有多个布局。 但这可能不适合所有情况


I don't think this can be done. The best thing I can think of is to have multiple layouts with the view at different positions. This might not suit every situations though

相关问答

更多

相关文章

更多

最新问答

更多
  • h2元素推动其他h2和div。(h2 element pushing other h2 and div down. two divs, two headers, and they're wrapped within a parent div)
  • 创建一个功能(Create a function)
  • 我投了份简历,是电脑编程方面的学徒,面试时说要培训三个月,前面
  • PDO语句不显示获取的结果(PDOstatement not displaying fetched results)
  • Qt冻结循环的原因?(Qt freezing cause of the loop?)
  • TableView重复youtube-api结果(TableView Repeating youtube-api result)
  • 如何使用自由职业者帐户登录我的php网站?(How can I login into my php website using freelancer account? [closed])
  • SQL Server 2014版本支持的最大数据库数(Maximum number of databases supported by SQL Server 2014 editions)
  • 我如何获得DynamicJasper 3.1.2(或更高版本)的Maven仓库?(How do I get the maven repository for DynamicJasper 3.1.2 (or higher)?)
  • 以编程方式创建UITableView(Creating a UITableView Programmatically)
  • 如何打破按钮上的生命周期循环(How to break do-while loop on button)
  • C#使用EF访问MVC上的部分类的自定义属性(C# access custom attributes of a partial class on MVC with EF)
  • 如何获得facebook app的publish_stream权限?(How to get publish_stream permissions for facebook app?)
  • 如何防止调用冗余函数的postgres视图(how to prevent postgres views calling redundant functions)
  • Sql Server在欧洲获取当前日期时间(Sql Server get current date time in Europe)
  • 设置kotlin扩展名(Setting a kotlin extension)
  • 如何并排放置两个元件?(How to position two elements side by side?)
  • 如何在vim中启用python3?(How to enable python3 in vim?)
  • 在MySQL和/或多列中使用多个表用于Rails应用程序(Using multiple tables in MySQL and/or multiple columns for a Rails application)
  • 如何隐藏谷歌地图上的登录按钮?(How to hide the Sign in button from Google maps?)
  • Mysql左连接旋转90°表(Mysql Left join rotate 90° table)
  • dedecms如何安装?
  • 在哪儿学计算机最好?
  • 学php哪个的书 最好,本人菜鸟
  • 触摸时不要突出显示表格视图行(Do not highlight table view row when touched)
  • 如何覆盖错误堆栈getter(How to override Error stack getter)
  • 带有ImageMagick和许多图像的GIF动画(GIF animation with ImageMagick and many images)
  • USSD INTERFACE - > java web应用程序通信(USSD INTERFACE -> java web app communication)
  • 电脑高中毕业学习去哪里培训
  • 正则表达式验证SMTP响应(Regex to validate SMTP Responses)