Pra*_*lar 3 java collections guava
在我的应用程序中,我有一个列表名称.我希望根据索引值将其转换为地图.例如
List<String> names = new ArrayList<String>();
names.add("Pratik");
names.add("Pratik");
names.add("Ram");
names.add("Varun");
Run Code Online (Sandbox Code Playgroud)
你能帮我一些guava/java api方法,它可以帮助我得到一个地图,其中键是索引,值是名称,即使有重复的值?如果名称中有两个"Pratik"字符串.地图应该是这样的
0 - >"Pratik",1 - >"Pratik",2 - >"Ram",3 - >"Varun"
我想你在这里不需要番石榴:
Map<Integer, String> map = new HashMap<Integer, String>();
int i = 0;
for (String name : names) {
map.put(i++, name);
}
System.out.println(map);
Run Code Online (Sandbox Code Playgroud)
打印:
{0=Pratik, 1=Pratik, 2=Ram, 3=Varun}
Run Code Online (Sandbox Code Playgroud)
如果您绝对想要使用Guava的方法,那么您可以这样做(但我建议使用JDK方法以避免不必要的复杂性):
Maps.asMap(
ContiguousSet.create(Range.closedOpen(0, names.size()), DiscreteDomain.integers()),
new Function<Integer, String>() {
@Override
public String apply(Integer input) {
return names.get(input);
}
});
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我不明白你为什么要这样做.
| 归档时间: |
|
| 查看次数: |
5122 次 |
| 最近记录: |