Dae galera do guj, estou com um problema eu preciso organizar um List pelo Status que esta no objeto, eu sei que eu vou ter que usar o Comparator e o Collections , mas agora como que eu vou comprar os status, tipo o usuario define o status que ela quer ordenar, dai eu tenho que colocar esse objeto que estao com esse status por primeiro.
Não sei se voce entenderão mas quem puder ajudar obrigado
Ficou complicado de entender. O usuário vai determinar a ordem que os status devem aparecer? Nesse caso, uma ideia, é o teu objeto status ter um parâmetro chamado ordem, e o comparator utilizar ele pra ordenar a coleção.
Agora, se você tem várias ordenações pré-definidas e o usuário simplesmente deve escolher uma, você pode ter varias implementações de comparator.
É assim eu tenho um lista de pedidos, o usuario pode escolher o tipo de ordenação da lista, por exemplo: No check box tem Liberado, Rejeitado e Liberado mas com Observações (Esse status tem um numero cada um) dai o usuario vai escolher qual desse status, e dai na lista ele vai ter que colocar em primeiro os objeto que tiverem o status igual ao selecionado
Acredito que os itens serão mostrados em uma JTable!
Se for o caso, implemente o ObjectTableModel e TableFilter, assim o user faz a ordenação e filtro como ele quiser!!!
que isso num tem problema, agora eu entendi as classe, porem agora como que eu vou fazer para comprar o status de cada um por que esse metodos comprar um objeto com o proximo objeto mas eu preciso comprar um objeto com um status
Esta frase não faz sentido. Não se ordena por um valor escolhido, se filtra por um valor escolhido.
Se eu tenho um conjunto de pessoas em uma lista com idade o que significa ordenar a ideia pelo valor 35 ? nada. não significa nada.
Agora, filtra pelo valor 35 significa só mostrar as pessoas com idade 35.
Dito isto, e entendida a diferença, é possivel ordenar por um campo dizendo qual é o primeiro e ordenando o resto em ordem aleatória.
Ou seja, no exemplo, “ordenar” por 35 significa “mostre os de 35 primeiro”.
Para fazer isso o comparator simplesmente faz um if. Se o valor do campo é o valor esperado, retorna 1 (este registro é maior que todos os outros) caso contrario, retorna 0 (este registro é igual a todos os outros). O algoritmo de sort irá colocar os objetos onde deu true no inicio mantendo os outros na ordem em que estavam.
Agora, na prática , isto não se faz. Se faz um filtro.