Java中自定义了一个数据结构:linkType{string str; int weight} 包含一个字符串,还有该字符串的权重
现在有List list = new ArrayList
希望能将list中的linkType按照字符串的权重重新排序
Java list排序 list的元素类型为包含数字和字符串的自定义类型
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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提供了很多好用的方法,排序啊、逆序啊、二分法查找啊等等都帮你封装的很好了。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报