基于值的Java ArrayList合并,无重复项
我有一个名为基于值的Java ArrayList合并,无重复项,java,arraylist,merge,no-duplicates,Java,Arraylist,Merge,No Duplicates,我有一个名为Sample的类,这个类有一个属性是ArrayList,一个区域包含一个ArrayList 公共类示例{ 私人ArrayList样本区; 公共阵列列表getMergedData() { ... } ... } 公共课区{ 私有数组列表元素 ... } 公共类元素{ 私有字符串名称; 私人浮动价值; ... } 我需要Sample中的getMergedData()类合并每个ArrayList区域中的每个 例: 区域1:(“元素K”=>1.0,“元素C”=>0.5,“元素AS”=>15
Sample
的类,这个类有一个属性是ArrayList
,一个区域包含一个ArrayList
公共类示例{
私人ArrayList样本区;
公共阵列列表getMergedData()
{
...
}
...
}
公共课区{
私有数组列表元素
...
}
公共类元素{
私有字符串名称;
私人浮动价值;
...
}
我需要Sample
中的getMergedData()
类合并每个ArrayList
区域中的每个
例:
区域1:(“元素K”=>1.0,“元素C”=>0.5,“元素AS”=>15.0)
区域2:(“元素K”=>10.1,“元素C”=>5.5,“元素AS”=>2.9,“元素O”=>1.5)
区域3:(“元素C”=>2.8,“元素AS”=>0.5,“元素O”=>5.8)
区域4:(“元素K”=>3.25,“元素AS”=>2.5,“元素O”=>0.1)
因此,该方法必须返回如下内容:
(“元素K”=>10.1,“元素C”=>5.5,“元素AS”=>15.0,“元素O”=>5.8”
我不知道如何才能以一种时尚的方式做到这一点。如果列表的元素顺序相同,例如它们的K
元素是第一个,它们的C
元素是第二个,等等,那么只需逐个元素进行比较。否则,您可以根据元素名称对它们进行排序,然后逐个元素进行比较(如果使用良好的排序算法,这是nlog(n),或者将所有内容放在一个HashMap中,元素名作为键,值作为值
HashMap map = new HashMap();
for(int i = 0; i < list1.size(); i++) {
Element e = list1.get(i);
map.put(e.name, e.value);
}
for(int i = 0; i < list2.size(); i++) {
Element e = list2.get(i);
if(map.get(e.name) < e.value)
map.put(e.name, e.value);
}
HashMap map=newhashmap();
对于(int i=0;i
元素
类的作用是什么?元素
保存有关在样本区域中发现的化学元素的信息。一个样本有多个区域,一个区域有多个元素。在一个给定区域中,元素是唯一的。值
字段是一个浮点值,我稍后将用于相似性比较isons。基本上我需要的是在ArrayList
中转换ArrayList
,其中每个条目都是在所有样本/区域中具有较大值的元素。如何表示字符串(例如“元素C”)在集合
类中?一个包含化学元素名称的私有字段?类元素
有一些字段,其中一个是元素名称。