Como resolver problema com lists

Olá pessoal,

Estou montando uma lista de carros à venda em uma concessionária e tenho algumas dúvidas sobre a melhor forma de adicionar e editar os dados dos veículos.

Pensei em adicionar os dados fixos, como: modelo, marca, placa e ano no construtor e os dados variáveis por meio de sets como: valor e a cor.

Mas primeiramente acredito que esse construtor esteja sobrecarregado com a quantidade de informações. O outro e principal problema é que ao utilizar diferentes regras de ordenação nessa lista os valores que “setei” em uma determinada ordenação, não acompanham o veículo ao utilizar outra ordenação.

Por exemplo se setar o valor de 15000 no veículo com placa JSF1249, utilizando as placas como critério de ordenação, ao imprimir o valor por meio do get, esse resultado aparece, mas ao mudar o critério de ordenação para o Ano e imprimir, essa informação não aparece.

Acredito que o problema seja a falta de uma variável para guardar as informações, mas qual seria a melhor forma de lidar com esse problema?

public Carro(String placa, int ano, String marca, String modelo) {
super(placa, ano, marca);
this.modelo = modelo;
}

public static void main(String[] args) {

	ArrayList<Veiculo> veiculos = new ArrayList<Veiculo>();
	veiculos.add(new Carro("JSF1249", 2008, "Volkswagen", "Gol"));
	veiculos.add(new Carro("DLF1245", 2018, "Volkswagen", "Golf"));

Coloca o resto do código.