09

Oca

2015

Java ile Listelerde Sıralama İşlemleri

Java’da liste içinde bulunan öğeleri sıralamak koleksiyonlarda bulunan Collections.sort() methodu ile gayet kolay. Bu yöntemin iki çeşidi vardır.

  • void sort(List<T> list) : Liste elemanlarını artan şekilde sıralar.
  • void sort(List<T> list, Comparator<? super T> c) : Liste elemanlarını karşılaştırıcı tarafından belirlenen düzene göre sıralar.

Arkaplanda işlemin hızlı ve stabil olması için optimize edilmiş bir birleştirme sıralama algoritması kullanır. Kullandığı algoritma, merge sort algoritması olarak geçmektedir.

Birleşmeli Sıralama (Merge Sort), bilgisayar bilimlerinde \mathcal{O}(n~\log(n)) derecesinde karmaşıklığa sahip bir sıralama algoritmasıdır. Girdi olarak aldığı diziyi en küçük hale gelene kadar ikili gruplara böler ve karşılaştırma yöntemi kullanarak diziyi sıralar.
http://tr.wikipedia.org/wiki/Birle%C5%9Ftirmeli_s%C4%B1ralama

1- Liste elemanlarının doğal sıralamalarına göre sıralanması

Java’da temel veri tiplerinin yapılarına göre doğal sıralamaları vardır.String, Character, Byte, Date, Integer, Float, gibi veri tiplerinin kendi yapılarına göre sıralamarı mevcut. Örnekler ile daha iyi açıklığa kavuşacağını düşünüyorum.

String türünden elemanları olan bir listenin sıralanması

Çıktı:

Character türünden elemanları olan bir listenin sıralanması

Çıktı:

Integer türünden elemanları olan bir listenin sıralanması

Çıktı:

Date türünden elemanları olan bir listenin sıralanması

Çıktı:

2- Ters Sıralama

sort(list) yöntemi her zaman artan düzende belirtilen liste elemanlarını düzenler. Azalan düzende sıralamak için Collections.reverse(list) yöntemini kullanmamız gerekiyor. reverse(list) bir sıralama yöntemi değildir. Sıralanan listeyi ters olarak yeniden sıralamak için kullanılır. Bu nedenle reverse uygulayabilmek için liste elemanlarını sıralamak gerekmekte.

Çıktı:

3- Farklı türlerde olan liste elemanlarının sıralanması

Farklı türden oluşan liste elemanlarını sıralamak için Comparable arayüzünden Employee sınıfını türetmemiz gerekiyor.

Çıktı:

4-Bir Karşılaştırıcı Kullanarak Liste Elemanlarının Sıralanması

Farklı türden elemanların bulunduğu listemizi karşılaştırıcı olarak belirlediğimiz age verisine göre tekrardan düzenleyeceğiz. Elemanların doğal dizilimine güvenmediğimiz veya farklı verilere göre farklı değerler elde etmek istediğimizde kullanabiliriz.

Çıktı:

Kaynak ve Detaylı Bilgi
http://www.codejava.net/java-core/collections/sorting-list-collections-examples

About Author

Yusuf Çakmak

Teknoloji ile ilgilenmeyi seven, herhangi bir teknolojiye kendini ait hissetmeyen, zaman buldukça farklı dilleri, kütüphaneleri, cihazları denemeye çalışan kendi halinde biriyim.

 

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir