如何比较java中包含对象的两个映射 import java.util.*; 类Getter\u Setter { int-id; 字符串名; 公开名单; 公共字符串getName() { 返回名称; } 公共int getId() { 返回id; } 公共无效集合id(内部id) { 这个.id=id; } 公共void集合名(字符串名) { this.name=name; } 公共无效设置器(列表) { 这个。桶=巴克; } } 类Getter_Setter2 { int-id; 字符串名; 公开名单; 公共字符串getName() { 返回名称; } 公共int getId() { 返回id; } 公共无效集合id(内部id) { 这个.id=id; } 公共void集合名(字符串名) { this.name=name; } 公共void setGetter_Setter2(列表buck) { 这个。桶=巴克; } } 简单类 { HashMap=newHashMap(); HashMap_getter_setter2=新HashMap(); 公共静态void main(字符串arg[]) { List temp=sum(); listemp=sum1(); } 公共静态列表总和() { 列表=新的ArrayList(); 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); 退货清单; } 公共静态列表sum1() { 列表=新的ArrayList(); Getter_Setter2 get=新Getter_Setter2(); get.setId(301); get.setName(“Hanish1”); System.out.println(get.getId()); System.out.println(get.getName()); list.add(get); map\u getter\u setter2.put(get.getId(),get); 退货清单; } }
在这种情况下,如何比较具有某些值的两个map对象。如果这些Maps包含大量数据,但id是唯一的。有两个类:第一个类是getter_setter,它在map对象中具有数据;第二个类是getter_setter,它在map_getter_setter中具有整个数据。我需要在id的基础上进行比较,然后对整个数据进行比较。如何做到这一点?如果我正确理解了您的问题,主要问题是id和data等字段都在hashmap类中,因此比较起来就不那么简单了 您可以编写定制的比较器类,它首先比较id,然后通过迭代比较映射内的数据,最后给出相等的值。关于这一点,请参考此答案如何比较java中包含对象的两个映射 import java.util.*; 类Getter\u Setter { int-id; 字符串名; 公开名单; 公共字符串getName() { 返回名称; } 公共int getId() { 返回id; } 公共无效集合id(内部id) { 这个.id=id; } 公共void集合名(字符串名) { this.name=name; } 公共无效设置器(列表) { 这个。桶=巴克; } } 类Getter_Setter2 { int-id; 字符串名; 公开名单; 公共字符串getName() { 返回名称; } 公共int getId() { 返回id; } 公共无效集合id(内部id) { 这个.id=id; } 公共void集合名(字符串名) { this.name=name; } 公共void setGetter_Setter2(列表buck) { 这个。桶=巴克; } } 简单类 { HashMap=newHashMap(); HashMap_getter_setter2=新HashMap(); 公共静态void main(字符串arg[]) { List temp=sum(); listemp=sum1(); } 公共静态列表总和() { 列表=新的ArrayList(); 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); 退货清单; } 公共静态列表sum1() { 列表=新的ArrayList(); Getter_Setter2 get=新Getter_Setter2(); get.setId(301); get.setName(“Hanish1”); System.out.println(get.getId()); System.out.println(get.getName()); list.add(get); map\u getter\u setter2.put(get.getId(),get); 退货清单; } },java,hashmap,Java,Hashmap,在这种情况下,如何比较具有某些值的两个map对象。如果这些Maps包含大量数据,但id是唯一的。有两个类:第一个类是getter_setter,它在map对象中具有数据;第二个类是getter_setter,它在map_getter_setter中具有整个数据。我需要在id的基础上进行比较,然后对整个数据进行比较。如何做到这一点?如果我正确理解了您的问题,主要问题是id和data等字段都在hashmap类中,因此比较起来就不那么简单了 您可以编写定制的比较器类,它首先比较id,然后通过迭代比较映
另一个选项是使用比较链。这将帮助您轻松使用多重比较。@Ruchira Gayan Ranaweera您粘贴的链接(这个问题已经有答案)是错误的。该链接仅包含值为字符串的映射。在这种情况下,值将是用户对象。。你的链接正确吗???答案是,Getter_Setter类的Hashcode和Equals方法应该被重写以进行唯一性计算,然后您需要遵循上面链接中给出的解决方案。。请参阅此问题,这不是重复的问题。有答案的链接实际上是比较字符串这一现象是关于对象的。请参考我上面的评论。有人有答案吗?请为Getter_Setter和Getter_Setter 2类的hashcode和equals方法加上唯一性对象逻辑和映射的call equals方法。我如何编写自己的比较器类在我看来,你的答案似乎是正确的,但我在为它编写自己的比较器时发现了困难。首先列出比较的确切字段。然后检查示例代码(不相关),但可能会给你一个好主意,有人知道答案吗?
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;
}
}