排序列表与Java中其他列表的比较

开发者

我有两个列表,说L1和L2的数据如下:

   L1:
   {a, def2, a1;
    a, ert4, a2;
    i, ert4, a7;
    i, ght6, a8;
    a, def2, a3;
    o, ght6, a2;
    i, htf,  a8;
   }

   L2:
     {
      a1, 7;
      a2, 9;
      a3, 14;
      a4, 12;
      a5, 18;
      a6, 2;
      a7, 6;
      a8, 15
      }

我想按照列表l2中a1,a2的值按降序对列表L1进行排序。我想要的输出是:

{a, def2, a3;
 a, ert4, a2;
 a, def2, a1;
 i, ert4, a8;
 i, htf, a8;
 i, ght6, a7;
 o, ght6, a2
 }

我知道我们可以将比较器用于自定义排序,但是我不确定如何将其用于其他列表。请告诉我我该怎么做。谢谢

好吧

首先,可以使用映射实现L2

HashMap<String, Integer> l2

然后您可以为L1中的元素定义一个类

class Element implements Comparable<Element>{
     String value, label; // label is a1,a2,a3....; value is whatever other data you want to store
      int sequence;// used for sorting 
      public int compareTo(Element o)          {
  return this.sequence- o.sequence;
}
}

已知,当您阅读L1元素时,只需执行

Element element = new Element();
element.value = "def2";
element.label="a1";
element.sequence = L2.getValue(element.label);

List L1 = new LinkedList();
L1.add(element);

假设L1也是一个集合(例如列表),则按

 Collections.sort(L1);

这样可以达到您的订购目的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章