在 java 中使用 Entry 接口而不是迭代 HashMap class 对象
Use of Entry interface in java other than iterating over HashMap class objects
Entry 接口用于在 entrySet() 和 keySet() 方法的帮助下迭代 HashMap、LinkedHashMap 和 TreeMap classes 对象。
Entry接口还有其他用途吗?
有没有实现 Entry 接口的 class 可以用来代替 Pair class (javafx.util.Pair) 来存储配对值?
Map.Entry
Map
interface has a nested interface, Map.Entry
。此接口包含一对对象,映射中每个条目的键和值。
Java 捆绑了两种具体实现,一种是可变的,一种是不可变的,都嵌套在 AbstractMap
.
中
那些具体的 classes 确实被一些人用作 class 作为一般配对使用,不涉及任何地图。 javafx.util.Pair
.
同上
通常最好定义您自己的 class,并根据您的问题域的上下文明确命名。
record
对于 Java 16 及更高版本中的不可变配对,请使用 records 功能。您只需要声明成员字段的类型和名称。编译器隐式创建构造函数、getter、equals
& hashCode
和 toString
.
将自定义 class 定义为记录可以非常轻松地简明地定义您自己的对。
record Point ( int x , int y ) {}
record Coordinate( double latitude , double longitude ) {}
record Pixel( int horizontal , int vertical ) {}
record Assignment( UUID employeeId , String projectName ) {}
请注意,您可以在本地、方法内、嵌套或单独声明记录。 Java 16+.
中的枚举和接口同上
Entry 接口用于在 entrySet() 和 keySet() 方法的帮助下迭代 HashMap、LinkedHashMap 和 TreeMap classes 对象。
Entry接口还有其他用途吗?
有没有实现 Entry 接口的 class 可以用来代替 Pair class (javafx.util.Pair) 来存储配对值?
Map.Entry
Map
interface has a nested interface, Map.Entry
。此接口包含一对对象,映射中每个条目的键和值。
Java 捆绑了两种具体实现,一种是可变的,一种是不可变的,都嵌套在 AbstractMap
.
那些具体的 classes 确实被一些人用作 class 作为一般配对使用,不涉及任何地图。 javafx.util.Pair
.
通常最好定义您自己的 class,并根据您的问题域的上下文明确命名。
record
对于 Java 16 及更高版本中的不可变配对,请使用 records 功能。您只需要声明成员字段的类型和名称。编译器隐式创建构造函数、getter、equals
& hashCode
和 toString
.
将自定义 class 定义为记录可以非常轻松地简明地定义您自己的对。
record Point ( int x , int y ) {}
record Coordinate( double latitude , double longitude ) {}
record Pixel( int horizontal , int vertical ) {}
record Assignment( UUID employeeId , String projectName ) {}
请注意,您可以在本地、方法内、嵌套或单独声明记录。 Java 16+.
中的枚举和接口同上