"Лучшим" путем является слишком широкий запрос. Действительно ли это является "самым коротким"? "Самый быстрый"? "Читаемый"? Проникнуть на месте или в другой набор?
Самый Простой (но не самый читаемый) путь состоит в том, чтобы выполнить итерации его и использовать Iterator.remove () метод:
Iterator<Foo> it = col.iterator();
while( it.hasNext() ) {
Foo foo = it.next();
if( !condition(foo) ) it.remove();
}
Теперь, для создания его более читаемым можно обернуть его в служебный метод. Тогда изобретите интерфейс IPredicate, создайте анонимную реализацию того интерфейса и сделайте что-то как:
CollectionUtils.filterInPlace(col,
new IPredicate<Foo>(){
public boolean keepIt(Foo foo) {
return foo.isBar();
}
});
, где filterInPlace () выполняют итерации набора и называют Predicate.keepIt (), чтобы учиться если экземпляр, который будет сохранен в наборе.
я действительно не вижу выравнивание для введения сторонней библиотеки только для этой задачи.
Вместо того, чтобы освободить место в правой части экрана, я перетащил свои панели свойств и панели инструментов в левый фрейм, в котором размещены проводник решений, представление классов и т. Д. Я бы предпочел иметь одно многоцелевое поле на одной стороне экрана, чем окружать код. Если они вам нужны и то, и другое, вы можете поместить набор инструментов в панель обозревателя решений, а затем расположить панель свойств под обозревателем решений, который постоянно держит в поле зрения несколько свойств вместе с набором инструментов.
Я знаю, что это не совсем так. ответ, который вы искали, но это другой способ сохранить пространство экрана доступным для кода, не вмешиваясь в автоматическое скрытие (я считаю, что автоматическое скрытие действительно больше раздражает, чем помогает).
Если вы щелкнете значок «булавка» в этих окнах инструментов, вы можете переключать, будут ли окна оставаться открытыми все время или только когда мышь находится рядом с ними. Конечно, иногда моя мышь отклоняется в этом направлении и они выскакивают, когда я этого не хочу, но такова жизнь ...