Sponsor Reklam 


14.09.2011 (06:31)

 Nesne Sıralama 
Sayıları, stringleri, karakterleri büyüklük ve küçüklük olarak karşılaştırıp sıralama yapabiliyoruz. Peki nesneleri birbirleriyle nasıl karşılaştıracağız ve neye göre sıralayacağız?

Öncelikle nesneleri neden sıralamak isteriz, bu ihtiyacımıza değinelim.

Daha önce nesnelerin dizi gibi saklanması ile ilgili ArrayList sınıfından şurada bahsetmiştik. Bu sınıf vasıtasıyla dinamik bir şekilde dizinin boyutuyla ilgilenmeden yeni nesneler ekleyip, nesneler çıkarabiliyoruz. Sakladığımız nesneleri sıralı bir hale getirmek ve o sırada dizinin içinde okuma yapmak isteyebiliriz. Burada karşımıza Collections sınıfının sort metodu çıkıyor. Bu metod arraylist objesi haricinde bir de Comparator nesnesi alıyor. Comparator sınıfı compare methoduna sahiptir.

Şimdi örneğimize bakalım:

Author.java:
class Author {
  private String firstName;
  private String lastName;

  public Author(){
  }
  public Author(String firstName, String lastName){
    this.firstName = firstName;
    this.lastName = lastName;
  }

  /**
    * @return Returns the firstName.
    */

  public String getFirstName() {
    return firstName;
  }
  /**
    * @param firstName The firstName to set.
    */

  public void setFirstName(String firstName) {
    this.firstName = firstName;
  }
  /**
    * @return Returns the lastName.
    */

  public String getLastName() {
    return lastName;
  }
  /**
    * @param lastName The lastName to set.
    */

  public void setLastName(String lastName) {
    this.lastName = lastName;
  }

  public String toString(){
    return (this.firstName + " " + this.lastName);
  }
}

Main.java:
import java.util.*;

public class Main {

  /**
    * @param args
    */

  public static void main(String[] args) {

    Author author1 = new Author("Bekir", "Coşkun");
    Author author2  = new Author("Yılmaz", "Özdil");
    Author author3 = new Author("Emin","Çölaşan");
    Author author4 = new Author("Saygı","Öztürk");

    ArrayList authorList = new ArrayList();
    authorList.add(author1);
    authorList.add(author2);
    authorList.add(author3);
    authorList.add(author4);

    Collections.sort(authorList, new Comparator(){

        public int compare(Object o1, Object o2) {
            Author a1 = (Author) o1;
            Author a2 = (Author) o2;
            return a1.getFirstName().compareToIgnoreCase(a2.getFirstName());
        }

    });

    System.out.println(authorList);

  }
}

Imza: admin








Yazilar kaynak gosterilmeden kopyalanamaz © www.kodcu.net // Twitter