Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中自定义排序集 publicstaticvoidmain(字符串[]args){ //TODO自动生成的方法存根 排序日期(Arrays.asList(newday[]{DAY.MON,DAY.WED,DAY.TUE,DAY.THU,DAY.SUN,DAY.SAT,DAY.FRI}); } 公共静态无效排序日期(列表日列表){ 集合=新树集合(日列表); 用于(日:设置) { 系统输出打印项次(天); } } 公众普查日{ 周一(星期一)、周二(星期二)、周三(星期三)、周四(星期四)、周五(星期五)、周六(星期六)、周日(星期日); 私有字符串m_name; 日期(字符串名称){ m_name=名称; } }_Java_Sorting_Data Structures_Enums_Enumeration - Fatal编程技术网

如何在Java中自定义排序集 publicstaticvoidmain(字符串[]args){ //TODO自动生成的方法存根 排序日期(Arrays.asList(newday[]{DAY.MON,DAY.WED,DAY.TUE,DAY.THU,DAY.SUN,DAY.SAT,DAY.FRI}); } 公共静态无效排序日期(列表日列表){ 集合=新树集合(日列表); 用于(日:设置) { 系统输出打印项次(天); } } 公众普查日{ 周一(星期一)、周二(星期二)、周三(星期三)、周四(星期四)、周五(星期五)、周六(星期六)、周日(星期日); 私有字符串m_name; 日期(字符串名称){ m_name=名称; } }

如何在Java中自定义排序集 publicstaticvoidmain(字符串[]args){ //TODO自动生成的方法存根 排序日期(Arrays.asList(newday[]{DAY.MON,DAY.WED,DAY.TUE,DAY.THU,DAY.SUN,DAY.SAT,DAY.FRI}); } 公共静态无效排序日期(列表日列表){ 集合=新树集合(日列表); 用于(日:设置) { 系统输出打印项次(天); } } 公众普查日{ 周一(星期一)、周二(星期二)、周三(星期三)、周四(星期四)、周五(星期五)、周六(星期六)、周日(星期日); 私有字符串m_name; 日期(字符串名称){ m_name=名称; } },java,sorting,data-structures,enums,enumeration,Java,Sorting,Data Structures,Enums,Enumeration,这段代码的输出是: 周一 星期二 结婚 清华大学 星期五 坐 太阳 但我希望输出是这样的 太阳 周一 星期二 结婚 清华大学 星期五 坐 这意味着我想定制排序功能,将星期天移到第一天 我该怎么做?非常感谢advanced。你唯一能做的不变的假设就是每天的顺序。我们知道星期一之后是星期二,星期三之后是星期三 public static void main(String[] args) { // TODO Auto-generated method stub sortDates(Ar

这段代码的输出是: 周一 星期二 结婚 清华大学 星期五 坐 太阳

但我希望输出是这样的 太阳 周一 星期二 结婚 清华大学 星期五 坐

这意味着我想定制排序功能,将星期天移到第一天


我该怎么做?非常感谢advanced。

你唯一能做的不变的假设就是每天的顺序。我们知道星期一之后是星期二,星期三之后是星期三

public static void main(String[] args) {
    // TODO Auto-generated method stub
    sortDates(Arrays.asList(new DAY[]{DAY.MON,DAY.WED,DAY.TUE,DAY.THU,DAY.SUN,DAY.SAT,DAY.FRI}));
}
public static void sortDates(List<DAY> dayList){
    Set<DAY> set = new TreeSet<DAY>(dayList);
    for(DAY day : set)
    {
        System.out.println(day);
    }
}
public enum DAY {
    MON("MONDAY"),TUE("TUESDAY"),WED("WEDNESDAY"),THU("THURSDAY"),FRI("FRIDAY"),SAT("SATURDAY"),SUN("SUNDAY");

    private String m_name;

    DAY(String name) {
        m_name=name;
    }
}
公共静态最终作废打印周(星期一){
Day[]days=Day.values();
int offset=firstDayOfWeek.ordinal();
对于(int i=0;i
由于这一点,您将能够创建订单不仅从周一或周日,但从一周的每一天


祝你好运

唯一不变的假设是天数的顺序。我们知道星期一之后是星期二,星期三之后是星期三

public static void main(String[] args) {
    // TODO Auto-generated method stub
    sortDates(Arrays.asList(new DAY[]{DAY.MON,DAY.WED,DAY.TUE,DAY.THU,DAY.SUN,DAY.SAT,DAY.FRI}));
}
public static void sortDates(List<DAY> dayList){
    Set<DAY> set = new TreeSet<DAY>(dayList);
    for(DAY day : set)
    {
        System.out.println(day);
    }
}
public enum DAY {
    MON("MONDAY"),TUE("TUESDAY"),WED("WEDNESDAY"),THU("THURSDAY"),FRI("FRIDAY"),SAT("SATURDAY"),SUN("SUNDAY");

    private String m_name;

    DAY(String name) {
        m_name=name;
    }
}
公共静态最终作废打印周(星期一){
Day[]days=Day.values();
int offset=firstDayOfWeek.ordinal();
对于(int i=0;i
由于这一点,您将能够创建订单不仅从周一或周日,但从一周的每一天

祝你好运

以下方法(使用比较器)需要枚举类中的标识符:

public static final void printWeek(Day firstDayOfWeek) {

        Day[] days = Day.values();

        int offset = firstDayOfWeek.ordinal();

        for(int i = 0; i< days.length; i++) {
            System.out.println(days[offset % days.length]);
            offset++;
        }

    }
导入java.util.array;
导入java.util.Comparator;
导入java.util.List;
导入java.util.Set;
导入java.util.TreeSet;
公共课周{
公共静态void main(字符串[]args){
比较器myComparator=新比较器(){
@凌驾
公共整数比较(第o1天,第o2天){
如果(o1.getPrio()==o2.getPrio()){
返回0;
}else if(o1.getPrio()
以下方法(使用比较器)需要枚举类中的标识符:

public static final void printWeek(Day firstDayOfWeek) {

        Day[] days = Day.values();

        int offset = firstDayOfWeek.ordinal();

        for(int i = 0; i< days.length; i++) {
            System.out.println(days[offset % days.length]);
            offset++;
        }

    }
导入java.util.array;
导入java.util.Comparator;
导入java.util.List;
导入java.util.Set;
导入java.util.TreeSet;
公共课周{
公共静态void main(字符串[]args){
比较器myComparator=新比较器(){
@凌驾
公共整数比较(第o1天,第o2天){
如果(o1.getPrio()==o2.getPrio()){
返回0;
}else if(o1.getPrio()
试试这个

import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;

public class week {

    public static void main(String[] args) {
        Comparator<DAY> myComparator = new Comparator<DAY>() {

            @Override
            public int compare(DAY o1, DAY o2) {
                if (o1.getPrio() == o2.getPrio()) {
                    return 0;
                } else if (o1.getPrio() < o2.getPrio()) {
                    return -1;
                }
                return 1;
            }
        };

        sortDates(Arrays.asList(new DAY[] { DAY.MON, DAY.WED, DAY.TUE, DAY.THU, DAY.FRI, DAY.SUN, DAY.SAT }),
                myComparator);

    }

    public static void sortDates(List<DAY> dayList, Comparator<DAY> comparator) {
        Set<DAY> setd = new TreeSet<DAY>(comparator);
        setd.addAll(dayList);

        Set<DAY> set = new TreeSet<DAY>(dayList);
        for (DAY day : set) {
            System.out.println(day);
        }
        System.out.println("comparator:");
        for (DAY day : setd) {
            System.out.println(day);
        }
    }

    public enum DAY {
        MON("MONDAY", 1), TUE("TUESDAY", 2), WED("WEDNESDAY", 3), THU("THURSDAY", 4), FRI("FRIDAY", 5), SAT("SATURDAY",
                6), SUN("SUNDAY", 0);

        private final String m_name;
        private final int prio;

        DAY(String name, int prio) {
            m_name = name;
            this.prio = prio;
        }

        public int getPrio() {
            return prio;
        }
    }

}
import java.util.*;
公务舱舱位{
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
排序日期(Arrays.asList(newday[]{DAY.MON,DAY.WED,DAY.TUE,DAY.THU,DAY.SUN,DAY.SAT});
}
公共静态无效排序日期(列表日列表){
Collections.sort(dayList,newcomparator(){
公共整数比较(第1天,第2天){
返回day1.getWeight()-day2.getWeight();
}});
System.out.println(“sortedlist是”+dayList.toString());
}
}
枚举日{
星期一(2,星期一)、星期二(3,星期二)、星期三(4,星期三)、星期四(5,星期四)、星期五(6,星期五)、星期六(7,星期六)、太阳(1,星期日);
私人住宅
private static Comparator<DAY> AM_ORD = Ordering.explicit(DAY.Sun, ... DAY.Sat);
private static Comparator<DAY> EU_ORD = Ordering.explicit(DAY.Mon, ... DAY.Sun);

public static void sortDates(List<DAY> dayList, boolean am)
{
    Set<DAY> set = new TreeSet<DAY>(am ? AM_ORD : EU_ORD);
    set.addAll(dayList);
    for (DAY day : set)
    {
        System.out.println(day);
    }
}
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;

public class Question {

    public static void main(final String[] args) {
        // TODO Auto-generated method stub
        sortDates(Arrays.asList(new DAY[] { DAY.MON, DAY.WED, DAY.TUE, DAY.THU,
                DAY.SUN, DAY.SAT, DAY.FRI }));
    }

    public static void sortDates(final List<DAY> dayList) {
        final Set<DAY> set = new TreeSet<DAY>();
        set.addAll(dayList);
        for (final DAY day : set) {
            System.out.println(day);
        }
    }

    public enum DAY implements Comparable<DAY> {
        MON("MONDAY", 1), TUE("TUESDAY", 2), WED("WEDNESDAY", 3), THU(
                "THURSDAY", 4), FRI("FRIDAY", 5), SAT("SATURDAY", 6), SUN(
                "SUNDAY", 0);

        private final String m_name;
        private final int m_index;

        DAY(final String name, final int index) {
            m_name = name;
            m_index = index;
        }

    }

    public static class DAYComparator implements Comparator<DAY> {

        @Override
        public int compare(final DAY o1, final DAY o2) {
            int returnValue = 0;
            if (o1.m_index > o2.m_index) {
                returnValue = 1;
            } else if (o1.m_index < o2.m_index) {
                returnValue = -1;

            }
            return returnValue;
        }

    }
}