举一个java map泛型的例子
时间: 2023-07-13 17:12:04 浏览: 189
好的,以下是一个Java Map泛型的例子:
```java
Map<String, Integer> map = new HashMap<>();
map.put("apple", 2);
map.put("banana", 3);
map.put("orange", 4);
int numApples = map.get("apple"); // 获取键为"apple"的值,值为2
int numBananas = map.get("banana"); // 获取键为"banana"的值,值为3
int numOranges = map.get("orange"); // 获取键为"orange"的值,值为4
System.out.println("苹果数量:" + numApples);
System.out.println("香蕉数量:" + numBananas);
System.out.println("橘子数量:" + numOranges);
```
这个例子中,我们创建了一个Map对象,键的类型为String,值的类型为Integer。我们向Map对象中添加了三个键值对,每个键表示一种水果的名称,值表示该水果的数量。我们可以通过get方法获取指定键的值,并将其强制转换为正确的类型。最后,我们打印出了每种水果的数量。
相关问题
java泛型转map
在Java中,泛型可以用于创建模板化的集合,如Map。当你需要将泛型类型的Map转换成非泛型形式的Map时,通常会在运行时通过强制类型转换来实现。以下是一个简单的示例:
```java
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// 创建一个泛型Map<String, Integer>
Map<String, Integer> genericMap = new HashMap<>();
genericMap.put("One", 1);
genericMap.put("Two", 2);
// 使用Class对象获取Map的具体类型
Class<?> keyClass = String.class; // 键的类型
Class<?> valueClass = Integer.class; // 值的类型
// 将泛型Map转换为Object类型的Map
Map<Object, Object> nonGenericMap = (Map<Object, Object>) genericMap.clone(); // 注意这里是浅复制,只复制引用不复制内容
// 现在你可以像操作普通Map一样操作nonGenericMap
nonGenericMap.put(keyClass.cast("Three"), valueClass.cast(3));
System.out.println(nonGenericMap); // 输出: {One=1, Two=2, Three=3}
}
}
```
在这个例子中,我们首先创建了一个`Map<String, Integer>`,然后使用`Class`对象获取键和值的实际类型,接着通过类型转换将泛型Map转换成了非泛型的Map。注意,这个过程并不是安全的,因为如果尝试插入的数据类型与原始类型不符,可能会抛出`ClassCastException`。
java apply 泛型使用
在Java中,`apply`通常不是Java标准库的一部分,但它可能是某些框架或者自定义函数库中的术语。如果你提到的是函数式编程中的`Function`接口或者Stream API的map操作,那么`apply`可以用于将泛型方法应用到特定的对象上。
例如,你可以创建一个接受泛型类型的`Function`对象,并通过`apply`方法传入实际值:
```java
import java.util.function.Function;
public class Main {
public static void main(String[] args) {
Function<String, Integer> stringToInt = s -> Integer.parseInt(s);
// 使用apply方法
int result = stringToInt.apply("10"); // result现在等于10
}
}
```
在这个例子中,`stringToInt`是一个`Function<String, Integer>`,意味着它接受一个字符串并返回一个整数。`apply("10")`就相当于调用了这个函数,将字符串"10"转换为了整数。
阅读全文