黑马程序员技术交流社区
标题:
集合排序
[打印本页]
作者:
程序爱好者
时间:
2014-4-18 13:00
标题:
集合排序
本帖最后由 程序爱好者 于 2014-4-18 13:37 编辑
public static void sort(List<String> list){
for(int x=0;x<list.size()-1;x++){
for(int y=0;y<list.size()-x-1;y++){
if(list.get(y).equalsIgnoreCase(list.get(y+1))<0)){
int temp = list.get(y);
list.get(y) = list.get(y+1);
list.get(y+1) = temp;
}
}
}
复制代码
List<String> list = new ArrayList<String>();怎样将ArrayList集合中的字符串按字典顺序倒序排列?
作者:
月光海
时间:
2014-4-18 13:17
java中的ArrayList需要通过collections类的sort方法来进行排序
如果想自定义排序方式则需要有类来实现Comparator接口并重写compare方法
调用sort方法时将ArrayList对象与实现Commparator接口的类的对象作为参数
sort(List<T> list, Comparator<? super T> c)
根据指定比较器产生的顺序对指定列表进行排序。
作者:
呆呆沙师妹
时间:
2014-4-18 13:26
我用的是笨方法,建议你代码修改如下:
for(int x=0;x<list.size()-1;x++){
for(int y=0;y<list.size()-x-1;y++){
//String类实现了Comparable接口
if(list.get(y).toUpperCase().compareTo(list.get(y+1).toUpperCase())<0){
String temp = list.get(y);
list.set(y, list.get(y+1));
list.set(y+1, temp);
}
}
}
复制代码
作者:
sanguodouble1
时间:
2014-4-18 13:27
直接使用工具类
Collections.sort(List<T> list) ,将集合T按升序排列,
然后在用
Collections.reverse(List<?> list)反转一下,那就是倒叙了
作者:
清风有意
时间:
2014-4-18 13:28
代码如下:
package exercise;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test4 {
public static void main(String[] args)
{
List<String> list = new ArrayList<String>();
list.add("abc");
list.add("dbc");
list.add("aac");
Collections.sort(list,Collections.reverseOrder());
System.out.println(list);
}
}
复制代码
作者:
左拉
时间:
2014-4-18 14:10
本帖最后由 左拉 于 2014-4-18 14:12 编辑
字符串本身重写了排序方法,可以直接按照升序排序,如果想逆序输出,通过Collection.reverse()或者StringBuffer中的reverse()方法就可以实现字符串反转,楼上的用Colletctions代码很好,我用StringBuffer来写:
import java.util.List;
import java.util.ArrayList;
public class Test{
public static void main(String[] args){
List<String> list = new ArrayList<String>();
list.add("c");
list.add("a");
list.add("b");
StringBuffer buffer=new StringBuffer(list.toString());
System.out.println(buffer.reverse());
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2