问题描述
- Java list排序 list的元素类型为包含数字和字符串的自定义类型
-
Java中自定义了一个数据结构:linkType{string str; int weight} 包含一个字符串,还有该字符串的权重
现在有List list = new ArrayList
希望能将list中的linkType按照字符串的权重重新排序
解决方案
楼上说的对。
使用java原生的API很方便的可以排序。
第一步对你的自定义类要实现Comparable接口,实现它的compareTo方法,在这个方法里面自己去写比较大小的逻辑。
然后使用Collections类对你装了自定义的数据List进行排序,Collections.sort(list);此方法默认是按升序排列,如果你想排降序,那么得到升序之后再Collections.reverse(list)即可。
其实不用java的API,自己一样可以写排序,无需继承Comparable接口,自己在linkType里面定义一个比较大小的方法,名字都可以随便取。然后对list循环,采用冒泡排序(或其他排序算法)就可以完成。
但是既然java已经提供了Collections这么好用的类,建议采用实现Comparable接口的方式去做。Collections提供了很多好用的方法,排序啊、逆序啊、二分法查找啊等等都帮你封装的很好了。
解决方案二:
你需要实现Comparable去自定义排序
http://www.cnblogs.com/liuyuanyuanGOGO/p/java_collections.html
时间: 2024-10-31 12:43:07