当前位置: 首页 > 知识库问答 >
问题:

如何从A-Z排序数组列表?

许天逸
2023-03-14
Default Browser    Google     www.Google.com     14/12/2013
Default Browser    BBC        www.BBC.com        13/12/2015
Default Browser    Amazon     www.Amazon.com     11/11/2014
Default Browser    Amazon     www.Amazon.com     11/11/2014
Default Browser    BBC        www.BBC.com        13/12/2015
Default Browser    Google     www.Google.com     14/12/2013

这是我试过的,但不起作用。

 int j = mCur.getCount();
 String[] mType = new String[j];
 String[] mTitles = new String[j];
 String[] murls = new String[j];
 long[] date = new long[j];

 for (int q=0; q<(j-1); q++) {
                String a = (mTitles[q]).toLowerCase();
                String b = (mTitles[q+1].toLowerCase());

                char[] c = a.toCharArray();
                char[] d = b.toCharArray();

                String temp, temp2, temp3 = null;
                long temp4 = 0;

                int lenc = c.length;
                int lend = d.length;
                int min =0;
                int count =0;

                if (lenc < lend)
                    min = lenc;
                else
                    min = lend;

                    if (c[count] > d[count]) {
                        temp = mTitles[count];
                        temp2 = mType[count];
                        temp3 = murls[count];
                        temp4 = date[count];

                        mTitles[count] = mTitles[count + 1];
                        mType[count] = mType[count + 1];
                        murls[count] = murls[count + 1];
                        date[count] = date[count + 1];

                        mTitles[count + 1] = temp;
                        mType[count + 1] = temp2;
                        murls[count + 1] = temp3;
                        date[count + 1] = temp4;
                    } else if (c[count] == d[count]) {
                        for (int w = 1; w < min; w++) {
                            if (c[w] > d[w]) {
                                temp = mTitles[w];
                                temp2 = mType[w];
                                temp3 = murls[w];
                                temp4 = date[w];

                                mTitles[w] = mTitles[w + 1];
                                mType[w] = mType[w + 1];
                                murls[w] = murls[w + 1];
                                date[w] = date[w + 1];

                                mTitles[w + 1] = temp;
                                mType[w + 1] = temp2;
                                murls[w + 1] = temp3;
                                date[w + 1] = temp4;
                            }
                        }
                    }
            }

共有1个答案

桂梓
2023-03-14

以上的回答给出了在Java中高效排序数组列表的最佳例子。

在此之前,请阅读上述答案的描述

我只是简化了上面的答案,让你更好地理解,它给出了你所需要的确切输出。

ArrayList<UserContainer> userList = new ArrayList<>();
    userList.add(new UserContainer("www.Google.com", "Google", "14/12/2013"));
    userList.add(new UserContainer("www.BBC.com", "BBC", "13/12/2015"));
    userList.add(new UserContainer("www.Amazon.com", "Amazon", "11/11/2014"));

    Log.i("Before Sorting :", "==========================>>");
    for (UserContainer obj : userList) {
        System.out.println("Default Browser: \t" + obj.name + "\t" + obj.date + "\t" + obj.webSite);
    }

    Collections.sort(userList, new Comparator<UserContainer>() {
        @Override
        public int compare(UserContainer first, UserContainer second) {
            return first.name.compareToIgnoreCase(second.name);
        }
    });


    Log.i("After Sorting :", "==========================>>");
    for (UserContainer obj : userList) {
        System.out.println("Default Browser: \t" + obj.name + "\t" + obj.date + "\t" + obj.webSite);
    }
    public class UserContainer {
    public UserContainer(String webSite, String name, String date) {
        this.webSite = webSite;
        this.name = name;
        this.date = date;
    }

    public String webSite = "";
    public String name = "";
    public String date = "";
}
 类似资料:
  • 我有一个java中的double列表,我想按降序排列ArrayList。 输入ArrayList如下所示: 输出应该是这样的

  • 我必须按降序整理出用户给出的15个数字。我可以写如何按升序对它们进行排序,但我不知道如何转动它们。使用for循环还是其他什么?

  • 问题内容: 我有一个多维数组。主数组是 我想做的是先对数组进行排序,然后再对进行排序。我知道在JavaScript 中您可以将自定义函数放入其中,就我而言,我有: 这是刚刚排序的一列,即OWNER_NAME很好,但我怎样修改它进行排序,然后? 问题答案: 如果所有者名称不同,请按它们排序。否则,使用决胜局的发布名称。

  • 问题内容: 有没有一种方法可以使用sort()方法或任何其他方法按列对列表进行排序?可以说我有清单: 我想对其进行排序,使其看起来像这样: 这样做的最佳方法是什么? 编辑: 现在,我遇到索引超出范围错误。我有一个二维数组,可以说1000行b 3列。我想根据第三列对其进行排序。这是正确的代码吗? 问题答案: 是。该内置接受的说法: 请注意,将返回一个新列表。如果要就地排序,请使用列表的方法(也可以方

  • 我试图从包含非alpha字符的字符串列表中删除单词,例如: 但我不能随意删除包含非alpha字符的单词,因为可能出现以下情况: 我需要想出一个正则表达式或类似的方法来处理这样的简单情况(所有类型的标点符号): 我使用一个自然语言包装类将句子转换为左侧的列表,但有时列表要复杂得多: 正如您所看到的,一些字符(如括号和撇号)被包装器转换或删除。我想将所有这些无关的子字符串处理成一个更干净的外观: 我对

  • 我有一个点列表,每个点都是一个大小为2的小列表。我想按x的递增顺序对点列表进行排序,如果x值相等,我就按y的递减顺序排序来打破平局。 我编写了一个自定义比较器来对点进行排序,如下所示: 以下是排序前的输入: 以下是使用上述比较器排序后产生的结果: 观察:- 输入按x的升序排序。 (5,12)被正确地放在(5,10)之前 (9,-15)被正确地放在(9,-1000)之前 然而,(10001,-10)