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;
}
}
如何比较在这种情况下具有一些值的两个地图对象。如果这些mapss包含大量数据,但id是唯一的。有两个类,第一个是getter_setter,它在地图对象和数据中有数据第二个类是getter_setter2,它在map_getter_Setter中包含整个数据。我需要在id的基础上进行比较,然后将比较整个数据。我怎么能这样做?
答案 0 :(得分:0)
如果我正确理解你的问题,主要的问题是像id和data这样的字段在hashmap类中,因此有点不那么直接比较。
您可以编写自定义比较器类,首先通过迭代比较id,然后比较map中的数据,最后给出相等的值。为此,请参阅此答案enter link description here
另一种选择是使用比较链。enter link description here,它将帮助您轻松使用多重比较。