2016-06-27 13 views
-6

名前をアルファベット順に並べ替えることができますが、最初に特殊文字が最後にならないようにしてください。コンパレータ - 特殊文字の並べ替え

以下のプログラムの動作

Collections.sort(elementList,new Comparator<Element>() { 
       @Override 
       public int compare(Element o1, Element o2) { 
        return o1.getDisplayName().toUpperCase().compareTo(o2.getDisplayName().toUpperCase()); 
       } 
      }); 
+4

ご質問に質問を含めるのを忘れてしまったようです。 – Biffen

+0

文字列のデフォルトの順序が役に立たない場合は、別の方法で特殊文字でオブジェクトを扱う独自のロジックを記述する必要があります。 –

+0

名前をソートする方法をいくつか例を挙げてお聞かせください。 – SubOptimal

答えて

0

、最後に来て、コードの特殊文字の下から。最初に特殊文字で文字列をソートします。

import java.util.Collections; 
import java.util.Comparator; 
import java.util.LinkedList; 
import java.util.List; 

public class ComparatorDemo { 
    String element; 

    public ComparatorDemo(String element) { 
     this.element = element; 
    } 

    public static void main(String[] args) { 
     List<ComparatorDemo> stringCollection = new LinkedList<>(); 
     stringCollection.add(new ComparatorDemo("abcd")); 
     stringCollection.add(new ComparatorDemo("jklm")); 
     stringCollection.add(new ComparatorDemo("opr")); 
     stringCollection.add(new ComparatorDemo("zabh")); 
     stringCollection.add(new ComparatorDemo("bhuy")); 
     stringCollection.add(new ComparatorDemo("@theh#saj")); 
     stringCollection.add(new ComparatorDemo("*&^%$")); 
     stringCollection.add(new ComparatorDemo("**")); 
     stringCollection.add(new ComparatorDemo("[email protected]#")); 
     stringCollection.add(new ComparatorDemo("@@#$")); 
     stringCollection.add(new ComparatorDemo("#$%$")); 
     stringCollection.add(new ComparatorDemo("%^return")); 
     System.out.println(stringCollection); 
     Comparator<ComparatorDemo> comparator = new Comparator<ComparatorDemo>() { 
      @Override 
      public int compare(ComparatorDemo o1, ComparatorDemo o2) { 
       return o1.element.toUpperCase().compareTo(
         o2.element.toUpperCase()); 
      } 
     }; 
     Collections.sort(stringCollection, comparator); 
     System.out.println(stringCollection); 
    } 

    @Override 
    public String toString() { 
     return "ComparatorDemo [element=" + element + "]"; 
    } 

} 

Output : 
Unsorted List - [ComparatorDemo [element=abcd], ComparatorDemo [element=jklm], ComparatorDemo [element=opr], ComparatorDemo [element=zabh], ComparatorDemo [element=bhuy], ComparatorDemo [[email protected]#saj], ComparatorDemo [element=*&^%$], ComparatorDemo [element=**], ComparatorDemo [[email protected]#], ComparatorDemo [[email protected]@#$], ComparatorDemo [element=#$%$], ComparatorDemo [element=%^return]] 

Sorted List - [ComparatorDemo [[email protected]#], ComparatorDemo [element=#$%$], ComparatorDemo [element=%^return], ComparatorDemo [element=*&^%$], ComparatorDemo [element=**], ComparatorDemo [[email protected]@#$], ComparatorDemo [[email protected]#saj], ComparatorDemo [element=abcd], ComparatorDemo [element=bhuy], ComparatorDemo [element=jklm], ComparatorDemo [element=opr], ComparatorDemo [element=zabh]] 
関連する問題