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

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • lingfeiwen
    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提供了很多好用的方法,排序啊、逆序啊、二分法查找啊等等都帮你封装的很好了。

    点赞 评论
  • bdmh
    bdmh 2015-07-03 08:09

    你需要实现Comparable去自定义排序
    http://www.cnblogs.com/liuyuanyuanGOGO/p/java_collections.html

    点赞 评论

相关推荐