使用Java进行Map的存在检查

检查地图是否存在

你好。提到島根的話,就不得不提出雲蕎麥,不過他們大約在下午3點關門,所以如果你要去的話,午餐時間是最佳選擇。

嗯,今天我想到了一种我个人认为相当不错的处理方式,所以我会放在某个地方以备将来使用。
我不太清楚它的具体用途。

追加说明:
已添加了@yoshi389111先生给出的建议内容。
代码3

代码 mǎ)

普通来说,或者说我这种简单的人,我突然想到的代码是这样的。

	public static void main(String[] args) {
		Map<String, String> map = new HashMap<>();
		map.put("thx", "Thank you");
		map.put("azs", "Azasu");

		System.out.println(mapCheck(map));
	}

	private static Boolean mapCheck(Map<String, String> map) {
		Boolean exist = true;

		if (!map.containsKey("thx")) {
			exist = false;
		}
		if (!map.containsKey("azs")) {
			exist = false;
		}

		return exist;
	}
実行結果 -> true

虽然我不认为这样做有什么问题,但我想到的代码如下。

请用中文进行以下短语的同义转述,仅需提供一个选项:

代码2

	public static void main(String[] args) {
		Map<String, String> map = new HashMap<>();
		map.put("thx", "Thank you");
		map.put("azs", "Azasu");

		System.out.println(mapCheck(map));
	}

	private static Boolean mapCheck(Map<String, String> map) {
		// 必須のKeyの存在チェック結果を追加
		List<Boolean> list = new ArrayList<Boolean>(){
			{
				add(map.containsKey("thx"));
				add(map.containsKey("azs"));
			}
		};

		// false の存在チェック結果を返却
		return !list.contains(false);
	}
実行結果 -> true

因为 “thx” 和 “azs” 在map中存在,所以结果为true。

接下来,我们尝试将不存在于地图中的值添加到列表中。

	private static Boolean mapCheck(Map<String, String> map) {
		// 必須のKeyの存在チェック結果を追加
		List<Boolean> list = new ArrayList<Boolean>(){
			{
				add(map.containsKey("thx"));
				add(map.containsKey("azs"));
				add(map.containsKey("danke"));
			}
		};

		// false の存在チェック結果を返却
		return !list.contains(false);
	}
実行結果 -> false

由于”danke”在地图中不存在,所以返回了false。

对未来充满期待

对于这个问题,如果值增加只需增加add操作,因此目光移动较少,我认为这是个好方法。

而且,只要在不是 Map 的情况下编写返回布尔值的 add 函数,就可以重复使用,所以方便性也没有太大的区别,这也是我喜欢的地方。

当特定值不存在时,该处理方法非常有效,而且通过这个处理方法,后续的处理就不需要再进行存在性检查了。

经过了许多尝试,但最后也没想到该怎么应用这个方法。对这个孩子的未来寄予了期望。

这段代码的价值被低估了

通过使用List.of()方法可以快速生成一个列表。
通过使用containsAll()方法可以一次性搜索列表中的多个值。
非常清晰和令人感动。

	private static boolean mapCheck(Map<String, String> map) {
    	return map.keySet().containsAll(List.of("thx", "azs"));
	}

使用keySet()方法获取的键列表中,包含了通过List.of()生成的要进行存在检查的键列表,可以使用containsAll()方法进行整体检查。这样做的好处是可以清晰地了解想要对键列表进行存在检查的意图,并且能够更加简洁地书写代码!

我对Boolean类型和boolean类型也有所了解。

而且,雖然與直接相關,但 Boolean 是一個包裝類,會產生不必要的自動裝箱,所以我認為這個方法的返回值最好是原始數據類型的 boolean。

请参考

 

– 你好,你能用中文给我译一下下面的句子吗?只需要一种翻译即可:@yoshi389111

广告
将在 10 秒后关闭
bannerAds