我正在试图弄清楚如何重写这个以使用流和过滤器来缩小我的标准并在必要时从地图中删除。
Iterator<Map.Entry<String,Object>> iter = listOfPossibleParams.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry<String,Object> entry = iter.next();
if(entry.getValue() instanceof String) {
if (StringUtils.isBlank((String) entry.getValue())) {
iter.remove();
}
}
}
我最初在想这样的事情,但它显然不能用作语法错误:
listOfPossibleParams.entrySet()
.stream()
.filter(p -> p.getValue() instanceof String)
.removeIf(e -> StringUtils.isBlank((String)e.getValue()));
答案 0 :(得分:15)
如果你可以修改Map,那么你可以这样做:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<include
android:id="@+id/hmebar"
layout="@layout/toolbar" />
<include layout="@layout/banner" />
<include layout="@layout/featured_products" />
</LinearLayout>
</RelativeLayout>
<ListView
android:id="@+id/nav_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#fff"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp" />
</android.support.v4.widget.DrawerLayout>
如果你想建立一个新的地图,你可以:
listOfPossibleParams.values()
.removeIf(v -> v instanceof String && StringUtils.isBlank((String) v));