为了账号安全,请及时绑定邮箱和手机立即绑定

Java中的ArrayList和泛型

Java中的ArrayList和泛型

一只甜甜圈 2021-04-09 18:19:31
我可以像ArrayList<Integer, Integer> arrList = new ArrayList<>();在Java中那样创建Arraylist吗?我真正需要的是在ArrayList的每个元素上存储一个对,并基于每个对的第一个元素以不降序排序。例如:(6,2) (2,8) (1,2) (4,5)最后应该给:(1,2) (2,8) (4,5) (6,2)
查看完整描述

3 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

一种方法是使用TreeMap,它将对type的值进行排序,Integer而无需您进行任何额外的工作:


Map<Integer, Integer> map = new TreeMap<>();

map.put(6, 2);

map.put(2, 8);

map.put(1, 2);

map.put(4, 5);

像这样打印:


map.entrySet().stream().forEach((entry) -> {

    System.out.println("(" + entry.getKey() + "," + entry.getValue()+")");    

});

产生:


(1,2)


(2,8)


(4,5)


(6,2)


或者,如在其他地方提到的,创建您自己的类并对其进行手动排序。


查看完整回答
反对 回复 2021-04-21
?
BIG阳

TA贡献1859条经验 获得超6个赞

创建另一个包含两个整数的类Pair


    class Pair{

        int first;

        int last;

        etc...

要对其进行排序,请实现Comparable并使用诸如priorityQueue之类的数据结构


查看完整回答
反对 回复 2021-04-21
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

您可以将配对对象与以下代码一起使用


    ArrayList<javafx.util.Pair<Integer, Integer>> arrList  = new ArrayList<>();

    arrList.add(new Pair<>(6,2));

    arrList.add(new Pair<>(2,8));

    arrList.add(new Pair<>(1,2));

    arrList.add(new Pair<>(4,5));


    arrList.sort(java.util.Comparator.comparing(Pair::getKey));


查看完整回答
反对 回复 2021-04-21
  • 3 回答
  • 0 关注
  • 252 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信