A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程序爱好者 中级黑马   /  2014-4-18 13:00  /  1311 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 程序爱好者 于 2014-4-18 13:37 编辑

  1. public static void sort(List<String> list){
  2. for(int x=0;x<list.size()-1;x++){
  3.                         for(int y=0;y<list.size()-x-1;y++){
  4.                                 if(list.get(y).equalsIgnoreCase(list.get(y+1))<0)){
  5.                                         int temp = list.get(y);
  6.                                         list.get(y) = list.get(y+1);
  7.                                         list.get(y+1) = temp;
  8.                                 }
  9.                         }
  10. }
复制代码
List<String> list = new ArrayList<String>();怎样将ArrayList集合中的字符串按字典顺序倒序排列?

5 个回复

倒序浏览
java中的ArrayList需要通过collections类的sort方法来进行排序

如果想自定义排序方式则需要有类来实现Comparator接口并重写compare方法

调用sort方法时将ArrayList对象与实现Commparator接口的类的对象作为参数
sort(List<T> list, Comparator<? super T> c)
          根据指定比较器产生的顺序对指定列表进行排序。
回复 使用道具 举报 1 0
我用的是笨方法,建议你代码修改如下:
  1.       for(int x=0;x<list.size()-1;x++){

  2.            for(int y=0;y<list.size()-x-1;y++){

  3.                    //String类实现了Comparable接口
  4.                if(list.get(y).toUpperCase().compareTo(list.get(y+1).toUpperCase())<0){

  5.                       String temp = list.get(y);

  6.                       list.set(y, list.get(y+1));

  7.                       list.set(y+1, temp);

  8.                }
  9.            }
  10.       }
复制代码
回复 使用道具 举报
直接使用工具类
Collections.sort(List<T> list) ,将集合T按升序排列,
然后在用
Collections.reverse(List<?> list)反转一下,那就是倒叙了
回复 使用道具 举报
代码如下:
  1. package exercise;

  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.List;

  5. public class Test4 {
  6.         public static void main(String[] args)
  7.         {
  8.                 List<String> list = new ArrayList<String>();
  9.                 list.add("abc");
  10.                 list.add("dbc");
  11.                 list.add("aac");
  12.                 Collections.sort(list,Collections.reverseOrder());
  13.                 System.out.println(list);
  14.         }
  15.        
  16. }
复制代码
回复 使用道具 举报
本帖最后由 左拉 于 2014-4-18 14:12 编辑

字符串本身重写了排序方法,可以直接按照升序排序,如果想逆序输出,通过Collection.reverse()或者StringBuffer中的reverse()方法就可以实现字符串反转,楼上的用Colletctions代码很好,我用StringBuffer来写:
  1. import java.util.List;
  2. import java.util.ArrayList;

  3. public class Test{
  4.         public static void main(String[] args){
  5.                 List<String> list = new ArrayList<String>();
  6.                 list.add("c");
  7.                 list.add("a");
  8.                 list.add("b");
  9.                 StringBuffer buffer=new StringBuffer(list.toString());
  10.                 System.out.println(buffer.reverse());
  11.         }
  12. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马