0

コンパレータを使用してJavaで配列をソートする例と出力を教えてください。を使用する必要があることはわかってpublic static void sort(List list, Comparator c);いますが、コンパレータはどのようにソート順を変更しますか?

4

3 に答える 3

4

Comparable通常は、List を実装してsort()メソッドに渡すだけです。Comparatorただし、代わりにa を使用する必要がある場合は、完全な例を次に示します。

public static void main(String args[]) {
   List<ExampleItem> examples = new LinkedList<ExampleItem>();
   //Build List 
   Collections.sort(examples, new ExampleCompartor());//Sort with your comparator
}

//Custom Class to sort
class ExampleItem{
    private int data;
}

//Compartor
static class ExampleCompartor implements Comparator<ExampleItem>{
    @Override
    public int compare(ExampleItem ex1, ExampleItem ex2) {
        return ex1.data - ex2.data;
    }
}
于 2011-02-02T01:41:37.047 に答える
2
public class CompSample {
    public static int countVowels(String s) {
        return s.replaceAll("[^aeiouAEIOU]", "").length();
    }

    public static class NumberOfVowelsComparator implements Comparator<String> {
        public int compare(String o1, String o2) {
            int o1vowels = countVowels(o1);
            int o2vowels = countVowels(o2);

            return o2vowels - o1vowels;
        }
    }

    public static void main(String[] args) {
        String[] words = {"one", "two", "tree", "four"};
        List<String> sortedWords = Collections.sort(Arrays.asList(words),
            new NumberOfVowelsComparator());
        System.out.println(sortedWords);
    }
}
于 2011-02-02T01:43:48.590 に答える
1

これは、コンパレーターを使用してソートする方法の良い例です。http://www.javadeveloper.co.in/java-example/java-comparator-example.html

于 2011-02-02T01:32:04.443 に答える