1

「u」と「v」の間に「h」の文字を入れたいのですが。私は解決策を見つけましたが、これはより短く、より良い方法で解決できると思います。

public class CustomStringSort
{
    public static void main(String[] args)
    {
        String[] abc = "abcdefghijklmnopqrstuvwxyz".split("");

        List<String> letters = Arrays.asList(abc);

        Collections.sort(letters, new MyStringComparator());

        for(String letter : letters)
        {
            System.out.println(letter);
        }
    }

    static class MyStringComparator implements Comparator<String>
    {
        @Override
        public int compare(String o1, String o2)
        {
            if(o1.equals("h") && o2.compareTo("u") <= 0)
            {
                return 1;
            }

            if(o1.equals("h") && o2.compareTo("v") >= 0)
            {
                return -1;
            }

            if(o2.equals("h") && o1.compareTo("u") <= 0)
            {
                return -1;
            }

            if(o2.equals("h") && o1.compareTo("v") >= 0)
            {
                return 1;
            }

            return o1.compareTo(o2);
        }
    }
}
4

1 に答える 1

0

実装方法がわからない列挙型を使用することをお勧めしますが、列挙型はカスタムリスト用に作成されています

于 2013-02-18T17:44:49.220 に答える