Guava 的map
时间: 2023-11-12 13:48:10 浏览: 38
Guava中的Map是Guava库中的一个核心类型之一。它提供了许多有用的功能和实用程序,以简化Java中的Map操作。Guava中的Map接口继承了Java中的Map接口,并添加了一些额外的功能。
Guava的Map主要有以下特点:
1. Guava的Map支持不可变的实现,可以通过ImmutableMap类创建不可变的Map对象。
2. Guava的Map提供了一些方便的工具方法,如创建并初始化Map、合并多个Map等。
3. Guava的Map提供了一些有用的工具类,如Maps类,它提供了各种有用的静态方法,如过滤Map、转换Map、将Map反转等。
4. Guava的Map还提供了一些特殊类型的Map,如Multimap(多值Map)和BiMap(双向Map)。
可以使用Guava的Map类来操作Map,例如使用put方法来添加键值对,使用get方法来获取值,使用containsKey方法来检查键是否存在等。
相关问题
java guava list转map,使用Guava把List转Map
可以使用Guava的`Maps.uniqueIndex()`方法将List转换成Map,具体实现如下:
```java
import com.google.common.collect.Maps;
import com.google.common.collect.Lists;
import java.util.List;
import java.util.Map;
public class ListToMapExample {
public static void main(String[] args) {
List<Person> personList = Lists.newArrayList(
new Person(1, "Alice"),
new Person(2, "Bob"),
new Person(3, "Charlie")
);
Map<Integer, Person> personMap = Maps.uniqueIndex(personList, Person::getId);
System.out.println(personMap);
}
}
class Person {
private int id;
private String name;
public Person(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
@Override
public String toString() {
return "Person{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
```
在上面的代码中,我们首先定义了一个Person类,其中包含了id和name两个属性。然后创建了一个Person列表,包含了三个Person对象。接下来,我们使用`Maps.uniqueIndex()`方法将Person列表转换成PersonMap,其中Person的id属性作为Map的key,Person对象作为Map的value。最后,我们打印出PersonMap来验证转换是否成功。
ImmutableMap
ImmutableMap是Google Guava库中的一个类,它实现了不可修改的映射(Map)。不可修改的意思是一旦创建了ImmutableMap对象,就不能对其进行添加、删除或修改操作。
ImmutableMap提供了多种创建方式,包括使用of()方法、使用Builder模式、使用copyOf()方法等。它可以存储键值对,其中键和值都不能为null。当需要创建一个不可修改的映射,并且希望保持其不变性时,可以使用ImmutableMap来实现。
以下是一个使用ImmutableMap的示例:
```java
import com.google.common.collect.ImmutableMap;
public class ImmutableMapExample {
public static void main(String[] args) {
ImmutableMap<Integer, String> map = ImmutableMap.of(
1, "One",
2, "Two",
3, "Three"
);
System.out.println(map); // 输出: {1=One, 2=Two, 3=Three}
// 尝试修改映射
map.put(4, "Four"); // 抛出UnsupportedOperationException异常
}
}
```
在上面的示例中,我们创建了一个包含三个键值对的ImmutableMap对象,并尝试对其进行修改操作,结果会抛出UnsupportedOperationException异常,因为ImmutableMap是不可修改的。
总结一下,ImmutableMap是Google Guava库中的一个类,用于创建不可修改的映射(Map),并提供了多种创建方式。它在保持数据不变性方面非常有用,可以避免意外的修改操作。