Karşılaştırıcı kullanarak Java'da SQL GROUP BY Özelliğini uygulayın, karşılaştırıcı sütun verilerinizi karşılaştıracak ve sıralayacaktır. Temel olarak, gruplanmış veriler olarak görünen sıralı verileri tutarsanız, örneğin aynı tekrarlanan sütun verileriniz varsa, mekanizmayı sıralayın, aynı verileri bir tarafta tutun ve sonra farklı veriler olan diğer verileri arayın. Bu, dolaylı olarak aynı verilerin GRUPLANDIRILMASI olarak görülmüştür.
public class GroupByFeatureInJava {
public static void main(String[] args) {
ProductBean p1 = new ProductBean("P1", 20, new Date());
ProductBean p2 = new ProductBean("P1", 30, new Date());
ProductBean p3 = new ProductBean("P2", 20, new Date());
ProductBean p4 = new ProductBean("P1", 20, new Date());
ProductBean p5 = new ProductBean("P3", 60, new Date());
ProductBean p6 = new ProductBean("P1", 20, new Date());
List<ProductBean> list = new ArrayList<ProductBean>();
list.add(p1);
list.add(p2);
list.add(p3);
list.add(p4);
list.add(p5);
list.add(p6);
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
ProductBean bean = (ProductBean) iterator.next();
System.out.println(bean);
}
System.out.println("******** AFTER GROUP BY PRODUCT_ID ******");
Collections.sort(list, new ProductBean().new CompareByProductID());
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
ProductBean bean = (ProductBean) iterator.next();
System.out.println(bean);
}
System.out.println("******** AFTER GROUP BY PRICE ******");
Collections.sort(list, new ProductBean().new CompareByProductPrice());
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
ProductBean bean = (ProductBean) iterator.next();
System.out.println(bean);
}
}
}
class ProductBean {
String productId;
int price;
Date date;
@Override
public String toString() {
return "ProductBean [" + productId + " " + price + " " + date + "]";
}
ProductBean() {
}
ProductBean(String productId, int price, Date date) {
this.productId = productId;
this.price = price;
this.date = date;
}
class CompareByProductID implements Comparator<ProductBean> {
public int compare(ProductBean p1, ProductBean p2) {
if (p1.productId.compareTo(p2.productId) > 0) {
return 1;
}
if (p1.productId.compareTo(p2.productId) < 0) {
return -1;
}
return 0;
}
@Override
public boolean equals(Object obj) {
return super.equals(obj);
}
}
class CompareByProductPrice implements Comparator<ProductBean> {
@Override
public int compare(ProductBean p1, ProductBean p2) {
if (p1.price > p2.price) {
return 1;
}
if (p1.price < p2.price) {
return -1;
}
return 0;
}
public boolean equals(Object obj) {
return super.equals(obj);
}
}
class CompareByCreateDate implements Comparator<ProductBean> {
@Override
public int compare(ProductBean p1, ProductBean p2) {
if (p1.date.after(p2.date)) {
return 1;
}
if (p1.date.before(p2.date)) {
return -1;
}
return 0;
}
@Override
public boolean equals(Object obj) {
return super.equals(obj);
}
}
}
Yukarıdaki ProductBean listesi için çıktı burada yapılır GROUP BY ölçütü yapılır, burada ProductBean'ın Collections.sort listesine verilen giriş verilerini görürseniz (liste, gerekli sütun için Karşılaştırıcı nesnesi) Bu, karşılaştırıcı uygulamanıza göre sıralayacaktır. ve GRUPLANDIRILMIŞ verileri aşağıdaki çıktıda görebileceksiniz. Bu yardımcı olur umarım...
******** GİRİŞ VERİLERİNİ GRUPLAMADAN ÖNCE BU ŞEKİLDE GÖRÜNÜR ******
ProductBean [P1 20 Kasım 17 Pazartesi 09:31:01 IST 2014]
ProductBean [P1 30 Kasım 17 Pazartesi 09:31:01 IST 2014]
ProductBean [P2 20 Kasım 17 Pzt 09:31:01 IST 2014]
ProductBean [P1 20 Kasım 17 Pazartesi 09:31:01 IST 2014]
ProductBean [P3 60 17 Kasım Pazartesi 09:31:01 IST 2014]
ProductBean [P1 20 Kasım 17 Pazartesi 09:31:01 IST 2014]
******** ÜRÜN KİMLİĞİNE GÖRE GRUPLAMA SONRASI ******
ProductBean [P1 20 Kasım 17 Pazartesi 09:31:01 IST 2014]
ProductBean [P1 30 Kasım 17 Pazartesi 09:31:01 IST 2014]
ProductBean [P1 20 Kasım 17 Pazartesi 09:31:01 IST 2014]
ProductBean [P1 20 Kasım 17 Pazartesi 09:31:01 IST 2014]
ProductBean [P2 20 Kasım 17 Pzt 09:31:01 IST 2014]
ProductBean [P3 60 17 Kasım Pazartesi 09:31:01 IST 2014]
******** FİYATA GÖRE GRUP SONRASI ******
ProductBean [P1 20 Kasım 17 Pazartesi 09:31:01 IST 2014]
ProductBean [P1 20 Kasım 17 Pazartesi 09:31:01 IST 2014]
ProductBean [P2 20 Kasım 17 Pzt 09:31:01 IST 2014]
ProductBean [P1 20 Kasım 17 Pazartesi 09:31:01 IST 2014]
ProductBean [P1 30 Kasım 17 Pazartesi 09:31:01 IST 2014]
ProductBean [P3 60 17 Kasım Pazartesi 09:31:01 IST 2014]