![](/img/trans.png)
[英]How to remove one arraylist value from another arraylist if the value in second array is same in first arraylist
[英]How to remove particular value from array list and also its next two values base on one condition usinng iterator over arraylist?
我在前三个索引中有一个字符串类型的数组列表,我有一辆车的详细信息,例如
同样,在接下来的三个索引中,我也提供了另一辆车的详细信息。 现在,我要删除一辆车的详细信息。 我应该怎么做。 例如我有一个名为carinfo的列表
carinfo.add("abc");
carinfo.add("xyz");
carinfo.add("someprice");
我使用了iterator.remove,但是我只能使用if语句删除第一个值的汽车名称。 我也想删除下两个值。 请帮我。
Iterator<String> iterator = a.iterator();
while(iterator.hasNext())
{
String value = iterator.next();
if ("abc".equals(value))
{
iterator.remove();
break;
}
}
您可以像这样从所有arrayList中删除特定位置:-
ArrayList<String> firstList = new ArrayList<>();
ArrayList<String> secondList = new ArrayList<>();
ArrayList<String> ThirdList = new ArrayList<>();
firstList.add("first");
firstList.add("two");
firstList.add("three");
firstList.add("four");
secondList.add("first");
secondList.add("two");
secondList.add("three");
secondList.add("four");
ThirdList.add("first");
ThirdList.add("two");
ThirdList.add("three");
ThirdList.add("four");
String value = "three";
int pos = firstList.indexOf(value);
firstList.remove(pos);
secondList.remove(pos);
ThirdList.remove(pos);
让我们定义一个简单的Car
。
class Car {
String name = "";
String model = "";
String price = "";
public Car(String name, String model, String price) {
this.name = name;
this.model = model;
this.price = price;
}
}
声明一个将用作我们的汽车清单的界面。
interface CarList {
void addCar(Car car);
void removeCar(Car car);
void removeAll();
}
使用List<String>
实现实现此接口,该实现遵循上述问题。
class MyCarList implements CarList {
private final List<String> storage = new ArrayList<>();
@Override
public void addCar(Car car) {
storage.add(car.name);
storage.add(car.model);
storage.add(car.price);
}
@Override
public void removeCar(Car car) {
int index = storage.indexOf(car.name);
// Remove car name at index.
storage.remove(index);
// index+1 item (model) is now index, call remove on `index` again.
storage.remove(index);
// index+1 item (price) is now index, call remove on `index` again.
storage.remove(index);
}
@Override
public void removeAll() {
storage.clear();
}
@NonNull
@Override
public String toString() {
return storage.toString();
}
}
样品运行
Car car1 = new Car("car1-name", "car1-model", "car1-price");
Car car2 = new Car("car2-name", "car2-model", "car2-price");
Car car3 = new Car("car3-name", "car3-model", "car3-price");
CarList carList = new MyCarList();
carList.addCar(car1);
carList.addCar(car2);
carList.addCar(car3);
System.out.println(carList);
//OUTPUT: [car1-name, car1-model, car1-price, car2-name, car2-model, car2-price, car3-name, car3-model, car3-price]
carList.removeCar(car2);
System.out.println(carList);
//OUTPUT: [car1-name, car1-model, car1-price, car3-name, car3-model, car3-price]
carList.removeCar(car1);
System.out.println(carList);
//OUTPUT: [car3-name, car3-model, car3-price]
carList.removeCar(car3);
System.out.println(carList);
//OUTPUT: []
carList.addCar(car2);
System.out.println(carList);
//OUTPUT: [car2-name, car2-model, car2-price]
请注意 ,代码缺少空检查和边缘情况(调用remove时,如果通过的汽车为null怎么办?如果列表为空并删除则怎么办?如果列表中不存在car并删除则怎么办? ?等)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.