繁体   English   中英

如何在其中具有对象的java中比较两个地图

[英]How to compare two maps in java which is having the objects in it

import java.util.*;
class Getter_Setter
{
    int id;
    String name;
    public List<Getter_Setter> buckets;
    public String getName()
    {
        return name;
    }
    public int getId()
    {
        return id;
    }
    public void setId(int id)
    {
        this.id=id;
    }
    public void setName(String name)
    {
        this.name=name;
    }
    public void setGetter_Setter(List<Getter_Setter> buck)
    {
        this.buckets=buck;
    }
}
class Getter_Setter2
{
    int id;
    String name;
    public List<Getter_Setter> buckets;
    public String getName()
    {
        return name;
    }
    public int getId()
    {
        return id;
    }
    public void setId(int id)
    {
        this.id=id;
    }
    public void setName(String name)
    {
        this.name=name;
    }
    public void setGetter_Setter2(List<Getter_Setter> buck)
    {
        this.buckets=buck;
    }
}
class Simple
{
    HashMap<String,Getter_Setter> map=new HashMap<String,Getter_Setter>();
    HashMap<String,Getter_Setter2> map_getter_setter2=new HashMap<String,Getter_Setter2>();
    public static void main(String arg[])
    {
        List<Getter_Setter> temp=sum();
        List<Getter_Setter2>temp=sum1();
    }
    public static List<Getter_Setter> sum()
    {
        List<Getter_Setter> list=new ArrayList<Getter_Setter>();
        Getter_Setter get=new Getter_Setter();
        get.setId(30);
        get.setName("Hanish");
        System.out.println(get.getId());
        System.out.println(get.getName());
        list.add(get);
        map.put(get.getId(),get);
        return list;
    }
    public static List<Getter_Setter> sum1()
    {
        List<Getter_Setter2> list=new ArrayList<Getter_Setter2>();
        Getter_Setter2 get=new Getter_Setter2();
        get.setId(301);
        get.setName("Hanish1");
        System.out.println(get.getId());
        System.out.println(get.getName());
        list.add(get);
        map_getter_setter2.put(get.getId(),get);
        return list;
    }
}

在这种情况下,如何比较两个具有某些值的地图对象。如果这些地图包含大量数据,但id是唯一的,则有两个类,第一个是getter_setter,它在地图对象中具有数据,而第二个类是是getter_setter2,它的全部数据都在map_getter_Setter中。 我需要根据id进行比较,然后将要比较整个数据。 我怎样才能做到这一点?

如果我正确理解了您的问题,则主要问题是id和data之类的字段位于hashmap类内,因此进行比较时不太容易。

您可以编写自定义比较器类,该类首先在id上进行比较,然后通过迭代比较map中的数据,最后给出相等值。 为此,请参考此答案, 在此处输入链接描述

另一种选择是使用比较链。 在此处输入链接说明,这将帮助您轻松使用多个比较。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM