S.a. Arkadaşlar,
Son yazımızda farklı alanlarda sıralama işlemleri yapmıştık. Fakat bunu uzun uzun if else ile yapmıştık, fakat aynı yazımızda bunun da başka bir yönteme göre kısalttığımızı söylemiş, ilerleyen yazılarda yine düzenlemeler yapabileceğimizi söylemiştik. Bugün yine küçük bir değişiklik ile kodu daha da kısalttık. Şimdi kod kısmında ne demek istediğimizi daha iyi anlatacağız.
sıralama etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
sıralama etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
14 Mayıs 2015 Perşembe
13 Mayıs 2015 Çarşamba
Spring Mvc + Farklı Türlerde Sıralama Çift Sıralama
S.a. Arkadaşlar,
Bugünkü yazımız yine sıralama ile ilgili olacaktır. Belki diyeceksiniz ne kadar da uzadı bu sıralama yazıları, fakat ben de projeyi geliştirdikçe yazıyorum. Doğal olarak aklıma farklı şeyler geldikçe hem geliştiriyorum. Geliştirmem bittikten sonra tekrar yazıyorum, daha sonra neler yapabilirim diye düşünüyorum. Her neyse lafı fazla uzatmaya gerek yok. Dün ve bir önceki yazımızda yine sıralamadan bahsetmiştik, fakat ilk sıralama yazımızda sadece isime göre sıralama yapıyordu. İkinci yazımızda ise isme göre küçükten büyüğe ve büyükten küçüğe doğru sıralama yapıyordu. Biz bunu, kodu "copy-past" ile genişletip soy isim ve telefon için de yapabilirdik, fakat bu temiz kod ilkesine ters düşerdi. Biz bunu acaba kodumuzu nasıl daha güzel yazabiliriz diye düşündük ve en son aşağıda anlatacağımız kodu yazmaya karar verdik. Muhakkak bu kodun geliştirilebilir yanı vardır. Fakat daha sonra bu kodları tekrar gözden geçirip eksikliklerimizi (refactoring) tamamlamaya çalışacağız. Şimdi kod kısmına geçelim artık.
Bugünkü yazımız yine sıralama ile ilgili olacaktır. Belki diyeceksiniz ne kadar da uzadı bu sıralama yazıları, fakat ben de projeyi geliştirdikçe yazıyorum. Doğal olarak aklıma farklı şeyler geldikçe hem geliştiriyorum. Geliştirmem bittikten sonra tekrar yazıyorum, daha sonra neler yapabilirim diye düşünüyorum. Her neyse lafı fazla uzatmaya gerek yok. Dün ve bir önceki yazımızda yine sıralamadan bahsetmiştik, fakat ilk sıralama yazımızda sadece isime göre sıralama yapıyordu. İkinci yazımızda ise isme göre küçükten büyüğe ve büyükten küçüğe doğru sıralama yapıyordu. Biz bunu, kodu "copy-past" ile genişletip soy isim ve telefon için de yapabilirdik, fakat bu temiz kod ilkesine ters düşerdi. Biz bunu acaba kodumuzu nasıl daha güzel yazabiliriz diye düşündük ve en son aşağıda anlatacağımız kodu yazmaya karar verdik. Muhakkak bu kodun geliştirilebilir yanı vardır. Fakat daha sonra bu kodları tekrar gözden geçirip eksikliklerimizi (refactoring) tamamlamaya çalışacağız. Şimdi kod kısmına geçelim artık.
10 Mayıs 2015 Pazar
Spring Mvc + Çift Yönlü Sıralama
S.a. Arkadaşlar,
Spring projemizde en son kaldığımız yerden yine devam ediyoruz. Bir önceki yazımızda sıralama yapmıştık ve yazımızı ilerleyen zamanlarda geliştirebileceğimizi söylemiştik. Bugün yaptığımız sıralamaya ek olarak ters de olarak da sıralayabileceğiz. Alış veriş sitelerinde sıkça gördüğümüz ucuzdan pahalıya veya tarihe göre veya farklı kriterlerde sıralamalar yapılabiliyor. Biz de bunun basit halini yapmaya çalıştık. Şimdi kodumuz üzerinde devam edecek olursak;
Spring projemizde en son kaldığımız yerden yine devam ediyoruz. Bir önceki yazımızda sıralama yapmıştık ve yazımızı ilerleyen zamanlarda geliştirebileceğimizi söylemiştik. Bugün yaptığımız sıralamaya ek olarak ters de olarak da sıralayabileceğiz. Alış veriş sitelerinde sıkça gördüğümüz ucuzdan pahalıya veya tarihe göre veya farklı kriterlerde sıralamalar yapılabiliyor. Biz de bunun basit halini yapmaya çalıştık. Şimdi kodumuz üzerinde devam edecek olursak;
8 Mayıs 2015 Cuma
Spring Mvc + Sıralama
S.a. Arkadaşlar,
Bir kaç farklı konudan sonra yine Spring mvc'ye döndük. Zaten önceki yazılarımızda bu projemiz üzerinden gelişmeler yapabileceğimizi belirtmiştik. Şimdi de onu yapıyoruz. Hatırlarsanız önceki yazılarımızda en son güncelleme işlemini yapmıştık. Şimdi ise bu işlemlere artı olarak sıralama işlemi yapacağız. Farklı yerlerde görmüş olduğumuz sıralama işlemini biz de uygulamamıza ekleyeceğiz. Fakat yapacağımız ekle tabi ki geliştirilebilir olacak. İleri ki günlerde belki daha da geliştireceğiz. Sizin de eklemek istediğiniz şeyler olursa projeyi paylaşıyorum, fikrinizi beyan edebilirsiniz. Şimdi yavaş yavaş kodlamamıza geçelim.
Bir kaç farklı konudan sonra yine Spring mvc'ye döndük. Zaten önceki yazılarımızda bu projemiz üzerinden gelişmeler yapabileceğimizi belirtmiştik. Şimdi de onu yapıyoruz. Hatırlarsanız önceki yazılarımızda en son güncelleme işlemini yapmıştık. Şimdi ise bu işlemlere artı olarak sıralama işlemi yapacağız. Farklı yerlerde görmüş olduğumuz sıralama işlemini biz de uygulamamıza ekleyeceğiz. Fakat yapacağımız ekle tabi ki geliştirilebilir olacak. İleri ki günlerde belki daha da geliştireceğiz. Sizin de eklemek istediğiniz şeyler olursa projeyi paylaşıyorum, fikrinizi beyan edebilirsiniz. Şimdi yavaş yavaş kodlamamıza geçelim.
22 Ocak 2015 Perşembe
Comparable & Comparator ile Sıralama
S.a. Arkadaşlar,
Bugünkü konumuz ArrayListelerde sıralama olacak, fakat bu sıralamalarımız basit manada String veya int sıralamak değil de , bir önceki yazımızda bahsettiğimiz objeler arasında sıralama olacaktır. Ne demek istiyoruz peki , elimizde bir tip değişken var. Örneğin int[] dizi={1,4,2,3}; gibi bir dizi olsun elimizde bunu nasıl sıralıyorduk Arrays.sort(dizi) yazıyorduk ve sıralama yapıyorduk. ArrayListlerde de buna benzer bir olay var. Orda Collection.sort() diye sıralama yapıyoruz, fakat bazen karşımıza bir sınıf geldiğini ve bunun birden fazla değişkeni olduğunu düşünelim hangisine göre sıralama yapacağı ise muallakta kalacağı için işte tam bu noktada comporable ve comparator devreye girer. Şimdi kodumuz üzerinden gidelim. Umarım bu sayede daha iyi pekişecektir söylemeye çalıştıklarımız.
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
class Car implements Comparable <Car>{
//<Car> enerjik ile sınırlama getiriyor
//Sınırlama koymak istemezsek comporTo metodunda
//değişiklik yapmak zorundayız.Car yerine Object tanımlanmalı
public Car(String marka, Integer fiyat) {
super();
this.marka = marka;
this.fiyat = fiyat;
}
String marka;
Integer fiyat;
@Override
public int compareTo(Car car) {
return fiyat.compareTo(car.fiyat);
//eğer ters sıralama yapmak istersek
//car.fiyat.compareTo(fiyat);
//markaya göre sıralama yapmak içinse
//return marka.compareTo(car.marka);
}
//burada compareTo ile neye göre sıralama
//yapmak istediğimizi override etmezsek hata alırız
@Override
public String toString() {
return "Car [ marka=" + marka + ", fiyat=" + fiyat + "]";
}
}
public class ComparableTest {
public static void main(String[] args) {
Car ford = new Car("ford", 100);
Car fiat = new Car( "fiat", 50);
Car subaru = new Car("subaru", 5000);
Car bmw = new Car("bmw", 1000);
List <Car> carList = new ArrayList <Car>();
carList.add(ford);
carList.add(fiat);
carList.add(subaru);
carList.add(bmw);
carList.add(new Car("mercedes",250));//böyle de yapılabilir
for (Car c : carList) {
System.out.println(c);
}
System.out.println();
Collections.sort(carList);
System.out.println("Comparable Sorting");
for (Car c : carList) {
System.out.println(c);
}
}
}
Yukarıda Comparable yapısını anlatmaya çalıştık Gerekli yerlerde yorum satırlarıyla kodlarımızı destekledik. Umarız anlamanıza yardımcı olmuştur. Şimdi de Comparator yapısına geçelim. Bunun için yine kodumuzu yazıp içerisini yorum satırlarıyla desteklemeye çalışacağız.
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
class Car {
public Car() {
//hatırlarsanız eğer herhangi bir constructor
//tanımlamazsak otomatik oluşuyordu .
}
public Car(String marka, Integer fiyat) {
super();
this.marka = marka;
this.fiyat = fiyat;
}
String marka;
Integer fiyat;
@Override
public String toString() {
return "Car ["+ " marka=" + marka + ", fiyat=" + fiyat + "]";
}
}
public class ComparatorTest implements Comparator<Car> {
// Doğal sıralama için Comparable , bundan farklı
//bir sıralama içinse comparator kullanılır
public static void main(String[] args) {
Car ford = new Car("ford", 100);
Car fiat = new Car( "fiat", 50);
Car subaru = new Car("subaru", 5000);
Car bmw = new Car("bmw", 1000);
List<Car> carList = new ArrayList <Car>();
carList.add(ford);
carList.add(fiat);
carList.add(subaru);
carList.add(bmw);
for (Car c : carList) {
System.out.println(c);
}
System.out.println();
ComparatorTest comparatorTest = new ComparatorTest();
// overloaded sort metodunu kullanabiliriz.
// burada 1.arguman siralamak istedigimiz List
// 2.arguman ise Comparator arabirimini uygulayan sinifimiz olacaktir.
Collections.sort(carList, comparatorTest);
//Arrays.sort metodu da gerekli kodlamalarla kullanılabilir
System.out.println("Comparator Sorting");
for (Car c : carList) {
System.out.println(c);
}
}
// Comparator -> compare metodunu override etmemiz gerekir
// Comparable -> compareTo metoduydu.
@Override
public int compare(Car car1, Car car2) {
return car2.fiyat.compareTo(car1.fiyat);
//tersten sıralamak için car1 ile car2 yer değiştirilmeli
}
}
Bugünkü konumuz ArrayListelerde sıralama olacak, fakat bu sıralamalarımız basit manada String veya int sıralamak değil de , bir önceki yazımızda bahsettiğimiz objeler arasında sıralama olacaktır. Ne demek istiyoruz peki , elimizde bir tip değişken var. Örneğin int[] dizi={1,4,2,3}; gibi bir dizi olsun elimizde bunu nasıl sıralıyorduk Arrays.sort(dizi) yazıyorduk ve sıralama yapıyorduk. ArrayListlerde de buna benzer bir olay var. Orda Collection.sort() diye sıralama yapıyoruz, fakat bazen karşımıza bir sınıf geldiğini ve bunun birden fazla değişkeni olduğunu düşünelim hangisine göre sıralama yapacağı ise muallakta kalacağı için işte tam bu noktada comporable ve comparator devreye girer. Şimdi kodumuz üzerinden gidelim. Umarım bu sayede daha iyi pekişecektir söylemeye çalıştıklarımız.
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
class Car implements Comparable <Car>{
//<Car> enerjik ile sınırlama getiriyor
//Sınırlama koymak istemezsek comporTo metodunda
//değişiklik yapmak zorundayız.Car yerine Object tanımlanmalı
public Car(String marka, Integer fiyat) {
super();
this.marka = marka;
this.fiyat = fiyat;
}
String marka;
Integer fiyat;
@Override
public int compareTo(Car car) {
return fiyat.compareTo(car.fiyat);
//eğer ters sıralama yapmak istersek
//car.fiyat.compareTo(fiyat);
//markaya göre sıralama yapmak içinse
//return marka.compareTo(car.marka);
}
//burada compareTo ile neye göre sıralama
//yapmak istediğimizi override etmezsek hata alırız
@Override
public String toString() {
return "Car [ marka=" + marka + ", fiyat=" + fiyat + "]";
}
}
public class ComparableTest {
public static void main(String[] args) {
Car ford = new Car("ford", 100);
Car fiat = new Car( "fiat", 50);
Car subaru = new Car("subaru", 5000);
Car bmw = new Car("bmw", 1000);
List <Car> carList = new ArrayList <Car>();
carList.add(ford);
carList.add(fiat);
carList.add(subaru);
carList.add(bmw);
carList.add(new Car("mercedes",250));//böyle de yapılabilir
for (Car c : carList) {
System.out.println(c);
}
System.out.println();
Collections.sort(carList);
System.out.println("Comparable Sorting");
for (Car c : carList) {
System.out.println(c);
}
}
}
Yukarıda Comparable yapısını anlatmaya çalıştık Gerekli yerlerde yorum satırlarıyla kodlarımızı destekledik. Umarız anlamanıza yardımcı olmuştur. Şimdi de Comparator yapısına geçelim. Bunun için yine kodumuzu yazıp içerisini yorum satırlarıyla desteklemeye çalışacağız.
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
class Car {
public Car() {
//hatırlarsanız eğer herhangi bir constructor
//tanımlamazsak otomatik oluşuyordu .
}
public Car(String marka, Integer fiyat) {
super();
this.marka = marka;
this.fiyat = fiyat;
}
String marka;
Integer fiyat;
@Override
public String toString() {
return "Car ["+ " marka=" + marka + ", fiyat=" + fiyat + "]";
}
}
public class ComparatorTest implements Comparator<Car> {
// Doğal sıralama için Comparable , bundan farklı
//bir sıralama içinse comparator kullanılır
public static void main(String[] args) {
Car ford = new Car("ford", 100);
Car fiat = new Car( "fiat", 50);
Car subaru = new Car("subaru", 5000);
Car bmw = new Car("bmw", 1000);
List<Car> carList = new ArrayList <Car>();
carList.add(ford);
carList.add(fiat);
carList.add(subaru);
carList.add(bmw);
for (Car c : carList) {
System.out.println(c);
}
System.out.println();
ComparatorTest comparatorTest = new ComparatorTest();
// overloaded sort metodunu kullanabiliriz.
// burada 1.arguman siralamak istedigimiz List
// 2.arguman ise Comparator arabirimini uygulayan sinifimiz olacaktir.
Collections.sort(carList, comparatorTest);
//Arrays.sort metodu da gerekli kodlamalarla kullanılabilir
System.out.println("Comparator Sorting");
for (Car c : carList) {
System.out.println(c);
}
}
// Comparator -> compare metodunu override etmemiz gerekir
// Comparable -> compareTo metoduydu.
@Override
public int compare(Car car1, Car car2) {
return car2.fiyat.compareTo(car1.fiyat);
//tersten sıralamak için car1 ile car2 yer değiştirilmeli
}
}
Etiketler:
Array List,
Comparable,
Comparator,
compare,
dizi,
IComparable,
IComparator,
Java,
order,
programming,
sıralama
Kaydol:
Kayıtlar (Atom)