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