li410426 2015-07-03 08:04 采纳率: 33.3%
浏览 3787
已采纳

Java list排序 list的元素类型为包含数字和字符串的自定义类型

Java中自定义了一个数据结构:linkType{string str; int weight} 包含一个字符串,还有该字符串的权重
现在有List list = new ArrayList
希望能将list中的linkType按照字符串的权重重新排序

  • 写回答

2条回答 默认 最新

  • Brankily 2015-07-03 09:21
    关注

    楼上说的对。
    使用java原生的API很方便的可以排序。
    第一步对你的自定义类要实现Comparable接口,实现它的compareTo方法,在这个方法里面自己去写比较大小的逻辑。
    然后使用Collections类对你装了自定义的数据List进行排序,Collections.sort(list);此方法默认是按升序排列,如果你想排降序,那么得到升序之后再Collections.reverse(list)即可。

    其实不用java的API,自己一样可以写排序,无需继承Comparable接口,自己在linkType里面定义一个比较大小的方法,名字都可以随便取。然后对list循环,采用冒泡排序(或其他排序算法)就可以完成。

    但是既然java已经提供了Collections这么好用的类,建议采用实现Comparable接口的方式去做。Collections提供了很多好用的方法,排序啊、逆序啊、二分法查找啊等等都帮你封装的很好了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样