2017-01-22 8 views
1

У меня есть список объектов, которые я хочу своего рода, я создать этот список, предоставляя существующий список первого то, чем заполнить свой список, добавляя другие объекты, как этогосортировка списка в Java

Client c = service.getClientById(idClient); 
    Commande pc = null; 
    List<Commande> commandes = new ArrayList<Commande>(c.getCommandes()); 

    for(Paiement i : c.getPaiements()){ 
     pc = new Commande(); 
     pc.setClient(c); 
     pc.setDate(i.getDate()); 
     pc.setMethode(i.getMethode()); 
     pc.setPayee(i.getPrice()); 
     commandes.add(pc); 
    }    

    Collections.sort(commandes); 

Я хочу сортировать этот объект (Commande) на основе поля даты, так вот мой объект

public class Commande implements Comparable<Commande> { 
    // other fields 
    @DateTimeFormat(pattern="yyyy-MM-dd") 
    LocalDate date; 
    @Override 
    public int compareTo(Commande c) { 
     return date.compareTo(c.getDate()); 
    }   
} 

проблема заключается в том, что объекты O c.getCommandes() и объект я создать и добавить в цикл являются своего рода отсортирован сепарабельнозначных

enter image description here

я не знаю, что я здесь отсутствует, любые предложения заранее спасибо

+0

Как вы получаете содержимое этого снимка экрана? Как это связано с списком 'commandes' и' c.getCommandes() 'list? – Arkadiy

ответ

4

Это потому, что список вы отсортирован не c.getCommandes, но новый список вы создали:

List<Commande> commandes = new ArrayList<Commande>(c.getCommandes()); 

создает новый список, который не является c.getCommandes(), но в основном его копия.

Если вы хотите изменить c.getCommandes список, не создать другую и работать непосредственно на нем:

List<Commande> commandes = c.getCommandes(); 
+0

спасибо от предложения, но работа непосредственно с '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' не решала проблему, потому что то, что я сортирую, является 'List commandes' этот список, а не' c.getCommandes() ' – ahmed

+0

почему мой последний пример я присваиваю 'commandes'' c.getCommandes() ':) Попробуйте, он должен решить вашу проблему! –

+0

да я просто попробовал, но, к сожалению, это не сработало, спасибо за помощь – ahmed

Смежные вопросы