import com.google.common.collect.Maps;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* Maps.uniqueIndex(Iterable<V> values, Function<? super V, K> keyFunction):
* 使用场景:有一组对象,它们在某个属性上有独一无二的值,而我们希望按照这个属性找到对象。
* 该方法返回一个Map,键为属性值,值为属性值对应的对象。
*
*/
public class MapTest {
public static class User {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
public static void main(String [] args) {
List<User> userList = new ArrayList<>();
User user1 = new User();
user1.setId(1);
user1.setName("张三");
User user2 = new User();
user2.setId(2);
user2.setName("李四");
userList.add(user1);
userList.add(user2);
Map<Integer, User> userMap = Maps.uniqueIndex(userList, User::getId);
System.out.println(userMap);
}
}
// 结果:
{1=User{id=1, name='张三'}, 2=User{id=2, name='李四'}}
本文介绍了如何在Java中利用Maps.uniqueIndex()方法,根据User类的id属性创建一个映射,将唯一的id与User对象关联,便于按属性查找。通过User类的实例演示了其实现过程和输出结果。
475

被折叠的 条评论
为什么被折叠?



