Как заменить элемент в java.util.Список с элементом другого типа?

#java #arrays #list

#java #массивы #Список

Вопрос:

У меня есть list<P> (java.util.list) . Теперь я хочу заменить элементы в list<A> на основе двух условий.

Если элемент == ‘a’ заменить на ‘x’, а если элемент == ‘b’ заменить на ‘y’. x и y имеют тип Q.

Какой самый чистый / эффективный способ сделать это? Предпочтительно, я не хочу выполнять итерацию с использованием цикла for. Я могу использовать stream / replaceAll, но это означало бы нарушение типа списка.

Комментарии:

1. Пожалуйста, будьте более конкретными. Как правило, подход заключается в преобразовании всего List<P> в List<A> или аналогичный.

2. все элементы, которые у вас есть, либо =a, либо = b? если это не так, возможно, вам придется использовать общий список

Ответ №1:

Я понял это. Я могу использовать (псевдокод) (list<A>).stream().forEach(r->{condition?list<B>.add(x):list<B>.add(y)})

инициализируйте список< B > перед этим.