Java 如何根据数组列表中的字符串值对其进行排序

Java 如何根据数组列表中的字符串值对其进行排序,java,android,sorting,arraylist,Java,Android,Sorting,Arraylist,在arraylist中,我有不同的字符串,如“Home”、“Work”、“XYZ”、“YZX”、“JDMD”…如何将Home放在顶部,然后工作,然后剩余。有人建议一种方法来实现这一点 ArrayList list = new ArrayList<>(); list.add("Home"); list.add("Work"); list.add("Freetime"); list.remove("Work"); list.add(0, "Work"); ArrayList list=

在arraylist中,我有不同的字符串,如“Home”、“Work”、“XYZ”、“YZX”、“JDMD”…如何将Home放在顶部,然后工作,然后剩余。有人建议一种方法来实现这一点

ArrayList list = new ArrayList<>();
list.add("Home");
list.add("Work");
list.add("Freetime");
list.remove("Work");
list.add(0, "Work");
ArrayList list=new ArrayList();
列表。添加(“主页”);
列表。添加(“工作”);
添加(“空闲时间”);
列出。删除(“工作”);
列表。添加(0,“工作”);

greats DevLen

如果您不愿意编写自己的排序或创建包装器,您可以执行以下操作

List<String> originalList = Arrays.asList("YZW", "Work", "Freetime", "Home", "XZY");
originalList.sort((x,y) -> x.compareTo(y));
  • 从列表中删除“主页”和“工作”
  • 执行集合排序(列表)
  • 使用Add(int-index,E-element)方法在列表的开头添加“Home”、“Work”


    注意:-上述代码中使用的add()方法需要将列表中的元素向右移动。添加(0,obj)和删除的复杂性为O(n)

    如果要按字母顺序对集合进行排序,可以执行以下操作

    List<String> originalList = Arrays.asList("YZW", "Work", "Freetime", "Home", "XZY");
    originalList.sort((x,y) -> x.compareTo(y));
    
    List originalList=Arrays.asList(“YZW”、“Work”、“Freetime”、“Home”、“XZY”);
    原始列表排序((x,y)->x.compareTo(y));
    

    如果你总是希望在一开始就有家,那么首先要改变CuffRealto函数来考虑家。

    < P>如果你想在排序顺序中添加字符串,你可以使用。下面是一段代码片段

    SortedSet<String> set = new TreeSet<>();
    set.add("JDMD");
    set.add("YZX");
    set.add("XYZ");
    set.add("Work");
    set.add("Home");
    
    for(String s : set) {
        System.out.println(s);
    }
    
    SortedSet set=new TreeSet();
    添加(“JDMD”);
    集合。添加(“YZX”);
    集合。添加(“XYZ”);
    设置。添加(“工作”);
    设置。添加(“主页”);
    for(字符串s:set){
    系统输出打印项次;
    }
    

    这将以排序方式添加每个字符串

    您的意思是插入到第一个位置?您需要在新的arraylist中写入所有值。但是它不能自动执行,您必须检查每个值,如果它匹配,请按您想要的顺序将其添加到arraylist中。您可以在我的问题中看到字符串的顺序,这些字符串是随机的,应该是类似于上述顺序的。首先将其放在主位置,然后在剩余的位置工作。