Это создаст список уникальных объектов с обновленным количеством
List<MyObject> list = new ArrayList<>();
list.add(new MyObject("AAA", 1, 0));
list.add(new MyObject("CCC", 3, 0));
list.add(new MyObject("AAA", 1, 0));
list.add(new MyObject("BBB", 2, 0));
list.add(new MyObject("AAA", 1, 0));
Map<Integer, MyObject> temp = new HashMap<>();
list.forEach( x -> {
MyObject o = temp.get(x.id);
if (o == null) {
temp.put(x.id, x);
x.quantity = 1;
} else {
o.quantity++;
}
});
List<MyObject> result = new ArrayList<>(temp.values());
Обратите внимание, что этот ответ для примера кода MyObject в вопросе. При добавлении нового объекта на карту temp
я установил количество на 1, поскольку именно так он обрабатывается в вопросе, но можно утверждать, что необходима лучшая логика.
Я думаю с помощью
$(this).parents('div.inputBoxImage').css(...)
вместо $(this.parentNode)
должен работать.
См., что jQuery пересекает документацию
Править: обновленный после ответа Prody (измененный родитель к родителям)
Я не на 100% уверен, но я думаю, в чем Вы нуждаетесь, то, что ответ Phill Sacre предлагает кроме использования parents
(заметьте последний s),
Из jQuery API:
родитель (Представляют expr в виде строки) возвращается, jQuery Получают ряд элементов, содержащих уникальных родителей подобранного набора элементов.
родители (Представляют expr в виде строки) возвращаются, jQuery Получают ряд элементов, содержащих уникальных предков подобранного набора элементов (за исключением корневого элемента).
Теперь с тех пор в HTML только идентификаторы уникальны, можно сослаться на отделение непосредственно, не делая никакого обхода:
<div class="inputboximage" id="inputboximage">
<div class="value2">
<input name='address1' value='5 The Laurels' type="text" size="26" maxlength="40" />
<br />
</div>
</div>
<script>
$(document).ready(function(){
$("input").focus(function () {
$('#inputboximage').css('background-image', 'url(images/curvedinputblue.gif)');
});
});
</script>
Обратите внимание, что, в то время как возможно отфильтровать родительские элементы для классификации CSS, с помощью поведения жука-навозника классов стиля, Плохой ТМ Идеи, и необходимо постараться не делать это. Но если Вы являетесь действительно отчаянными, можно дать ему попытку:
$("input").focus(function () {
$(this).parents('div.inputboximage').css('background-image', 'url(images/curvedinputblue.gif)');
});