Java 如何替换数组或对象元素并删除未使用的重复元素

Java 如何替换数组或对象元素并删除未使用的重复元素,java,replace,Java,Replace,我有一个具有以下值的arraylist new Car[make:"omni",color:"red"] new Car[make:"swift",color:"blue"] new Car[make:"swift",color:"red"] new Car[make:"swift",color:"white"] new Car[make:"omni",color:"blue"] 我想把这张表列一张应该还车的单子 制作如下 new Car[make:"omni",color:"red"

我有一个具有以下值的arraylist

new Car[make:"omni",color:"red"]

new Car[make:"swift",color:"blue"]

new Car[make:"swift",color:"red"]

new Car[make:"swift",color:"white"]

new Car[make:"omni",color:"blue"]
我想把这张表列一张应该还车的单子 制作如下

new Car[make:"omni",color:"red","blue"]
你能告诉我用java编写的代码吗


感谢您提前回复。

这是一种方法。但是,请确保下次添加最小的可复制代码,以显示到目前为止您已经尝试了什么,以及您的成功之处。 java

public class Car {
private String make;
private String color;

public Car() {

}

public Car(String make, String color) {
    this.make = make;
    this.color = color;
}

public String getMake() {
    return make;
}

public void setMake(String make) {
    this.make = make;
}

public String getColor() {
    return color;
}

public void setColor(String color) {
    this.color = color;
}

@Override
public String toString() {
    return "make:" + this.getMake() + "," + "color:" + this.getColor();
}
}

主要方法

`public static void main(String args[]) {
    List<Car> cars = new ArrayList<>();
    HashMap<String, String> resultMap = new HashMap<>();
    cars.add(new Car("omni", "black"));
    cars.add(new Car("swift", "blue"));
    cars.add(new Car("omni", "red"));
    cars.add(new Car("swift", "black"));
    cars.add(new Car("omni", "blue"));

    for (Car car : cars) {
        if (resultMap.containsKey(car.getMake())) {
            resultMap.put(car.getMake(), resultMap.get(car.getMake()) + "," + car.getColor());
        } else {
            resultMap.put(car.getMake(), car.getColor());
        }
    }

    List<Car> finalCars = resultMap.entrySet().stream().map(mapper -> {
        Car car = new Car();
        car.setMake(mapper.getKey());
        car.setColor(mapper.getValue());
        return car;
    }).collect(Collectors.toList());

    finalCars.forEach(car -> {
        System.out.println(car.toString());
    });
}`
`publicstaticvoidmain(字符串参数[]){
List cars=new ArrayList();
HashMap resultMap=新的HashMap();
添加(新车(“全方位”、“黑色”));
添加(新车(“swift”、“蓝色”));
添加(新车(“全向”、“红色”));
添加(新车(“swift”、“黑色”));
添加(新车(“omni”、“蓝色”));
用于(汽车:汽车){
if(resultMap.containsKey(car.getMake())){
resultMap.put(car.getMake(),resultMap.get(car.getMake())+“,“+car.getColor());
}否则{
结果映射put(car.getMake(),car.getColor());
}
}
List finalCars=resultMap.entrySet().stream().map(映射器->{
汽车=新车();
setMake(mapper.getKey());
setColor(mapper.getValue());
返回车;
}).collect(Collectors.toList());
finalCars.forEach(汽车->{
System.out.println(car.toString());
});
}`

为什么Swift车型在逻辑上被删除?请注意,在这种情况下,更好的设计是使用集合而不是字符串对类中的
color
字段进行建模。这不是Java,请使用正确的标记