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

根据特定值对ArrayList进行排序

裴威
2023-03-14

我有一个数组列表 假设[“monday”,“mesday”,“friday”]

我的目的是以循环的方式基于DayoftheWeek来订购它。

输入:“星期三”

SortedList:[“星期三”,“星期五”,“星期一”]

共有2个答案

欧阳正谊
2023-03-14

演示:

import java.time.DayOfWeek;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<DayOfWeek> list = new ArrayList<>(List.of(DayOfWeek.MONDAY, DayOfWeek.TUESDAY, DayOfWeek.WEDNESDAY,
                DayOfWeek.THURSDAY, DayOfWeek.FRIDAY, DayOfWeek.SUNDAY));

        Collections.rotate(list, list.size() - list.indexOf(DayOfWeek.WEDNESDAY));

        System.out.println(list);
    }
}

输出:

[WEDNESDAY, THURSDAY, FRIDAY, SUNDAY, MONDAY, TUESDAY]

交互式:

import java.time.DayOfWeek;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        List<DayOfWeek> list = new ArrayList<>(List.of(DayOfWeek.MONDAY, DayOfWeek.TUESDAY, DayOfWeek.WEDNESDAY,
                DayOfWeek.THURSDAY, DayOfWeek.FRIDAY, DayOfWeek.SUNDAY));

        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter the day: ");
        String day = scanner.nextLine();

        try {
            Collections.rotate(list, list.size() - list.indexOf(DayOfWeek.valueOf(day.toUpperCase())));
            System.out.println(list);
        } catch (IllegalArgumentException e) {
            System.out.println("Invalid input");
        }
    }
}

运行示例:

Enter the day: wednesday
[WEDNESDAY, THURSDAY, FRIDAY, SUNDAY, MONDAY, TUESDAY]
徐子石
2023-03-14

我建议使用类似于以下的方法:

在Java中如何将数组值排序为循环格式?

其中每个dayofweek都有自己的ID号,它对应于其预定的顺序位置,因此您可以围绕这些数字旋转。

 类似资料:
  • 问题内容: 我有一个对象的ArrayList。该对象包含属性和。所以我想对上的对象进行排序,对于同一日期的所有对象,我想对其进行排序。我怎样才能做到这一点? 问题答案: 实施自定义,然后使用。它可能看起来像这样:

  • 边走边学Java(Python背景)。简单的单词计数程序在Java7代码(不能用J8!)。 我有一个单词的哈希图:计数对。现在我需要按计数(递减顺序)排序,并打破按字母顺序使用word的联系。 我正在寻找对这个想法的反馈: 遍历HashMap中的映射项(me) 使用me.getkey=K和me.getvalue=v new map.entry reverse_me=(V,K){不确定此语法} 将r

  • 我检查了许多示例,但我不知道如何实现比较器或其他方法来解决我的问题。我试图清楚地解释我的问题。我有一个arrayList如下:我的Datamodel包括一个int作为id和一个String作为每个对象的名称; 我的第二个Arraylist还包括一个包含更多项的数据模型,但它还包括First Arraylist的值,如下所示: 现在我想根据firstArrayList(值顺序)对第二个arrayLi

  • 问题内容: 我需要发送查询以检索具有特定字符组的值,如下所示: 假设我对“ XX”感兴趣,因此它应该搜索其值以“ XX”开头或具有“ XX”(空格XX)的任何字段。例如,并且是有效的结果。 我有以下查询, 返回正确的结果,但我需要对它们进行排序 ,使其首先返回开头的内容,然后返回其他结果。如下: 码 问题答案: 使用JPQL(HQL) : 有条件 有了很多麻烦。首先,您必须在子句中使用本机SQL

  • 问题内容: 我需要发送查询以检索具有特定字符组的值,如下所示: 可以说我对“ XX”感兴趣,因此它应该搜索其值以“ XX”开头或具有“ XX”(空格XX)的任何字段。例如,并且是有效的结果。 我有以下查询, 返回正确的结果,但我需要对它们进行排序 ,使其首先返回开头的内容,然后返回其他结果。如下: 码 问题答案: 使用JPQL(HQL) : 有条件 有了很多麻烦。首先,您必须在子句中使用本机SQL

  • 我有一个,在用户中有姓名、姓氏、年龄等。我希望实现一个排序算法,根据用户年龄对arraylist进行排序。我搜索了很多,但只找到排序数组。