[英]Efficient way of removing multi entries from Java Properties Object
我有一個大約有10k元素的Properties
對象。 我想刪除其鍵以特定文本開頭的條目(鍵/值)。 目前,我正在使用此代碼來執行此操作:
Properties temp = new Properties();
myProperties.keySet().forEach(key -> {
if (!key.toString().startsWith("specificText")){
temp.setProperty(key, myProperties.get(key));
}
});
myProperties = temp;
另一種解決方案是使用putAll而不是多次調用setProperty:
Properties temp = new Properties();
temp.putAll(myProperties.entrySet().stream()
.filter(entry -> !entry.getKey().toString().startsWith("specificText")
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)));
myProperties= temp;
但是以上解決方案都無法滿足我的工作需要。 我確信應該有一個更好的方法來刪除不需要的屬性。 任何幫助是極大的贊賞。
修改地圖的keySet直接影響地圖本身:
myProperties.keySet().removeIf(key -> key.toString().startsWith("specificText"));
從Map.keySet()的文檔中 :
該集合支持元素刪除,這會從地圖中刪除相應的映射…
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.