Java中“ =”运算符两侧的尖括号中的参数类型

问题描述

我最近开始学习Java。我偶然发现了变量创建语法。 假设我必须创建一个HashMap实例,该实例的键值对字符为整数。

HashMap<Character,Integer> map=new HashMap<Character,Integer>();
HashMap<Character,Integer> map=new HashMap<>();

这两者有什么区别?

解决方法

在功能方面,它们是相同的。右侧的空白<>基本上意味着与左侧(HashMap<Character,Integer>)相同。这是一种简写形式,因此您不必在两面都写相同的文字。

这称为diamond operator,是Java 7中引入的。