2011-06-19 14 views
7

Geçerli 2 farklı yerde aşağıdaki 2 parça kodu kullanıyorum, sıralanmış, değişmez bir liste oluşturmak için.Örnek Google Guava kullanarak duyarsız sıralama

return Ordering.natural().immutableSortedCopy(iterable); 

ve

return Ordering.usingToString().immutableSortedCopy(machines); 

Ancak bu 'sipariş' Case duyarlı yapar.

Bir kasa oluşturmak için guava apis'i nasıl kullanırım? duyarsız sıralanmış değişmez liste?

cevap

15

String.CASE_INSENSITIVE_ORDER karşılaştırıcısını kullanarak from yöntemini kullanmanız gerekeceğine inanıyorum.

return Ordering.from(String.CASE_INSENSITIVE_ORDER).immutableSortedCopy(iterable); 
+0

Tamam bu ancak ben Ordering.usingToString(). ImmutableSortedCopy(), nasıl bu durumda çalışacak kullanmak yeri ayrıdır, Ordering.natural kullanırken iş gibi görünüyor? – pdeva

+2

'dan' herhangi bir karşılaştırıcıyı alır. 'ToString' durumunda, karşılaştırmadan önce kendi karşılaştırıcınızı yaratmanız ve toStowerCase()' gibi bir şey yapmanız gerekir. Şerefe! –

+6

'usingToString()' yerine, 'Sipariş'lerinizi' Functions.toStringFunction() 'ile, örn. ordering.from (String.CASE_INSENSITIVE_ORDER) .onResultOf (Functions.toStringFunction()). immutableSortedCopy (yinelenebilir); –

İlgili konular