我寻找一种将 x 元素从 map 复制到另一个 map 的方法。 我试过这段代码
private void newMapElement( Map<?, ?> userMap, Map<?, ?> newUserMap, int maxSize)
{
int i = 0;
for ( Map.Entry<?, ?> entry : userMap.entrySet() )
{
newUserMap.put( entry.getKey(), entry.getValue() );
i++;
if ( i == maxSize)
{
break;
}
}
}
但 java 似乎不喜欢 put。
有什么想法吗?
最佳答案
你必须使用? newUserMap 的 super T
作为带有 super 的通配符(带上限的通配符)将允许您将元素添加到您的 map 中,您的代码应该如下所示:
private <T> void newMapElement( Map<? extends T, ? extends T> userMap, Map<? super T, ? super T> newUserMap, int maxSize)
{
int i = 0;
for ( Map.Entry<? extends T, ? extends T> entry : userMap.entrySet() )
{
newUserMap.put( entry.getKey(), entry.getValue() );
i++;
if ( i == maxSize)
{
break;
}
}
}
关于java - 使用通用将 x 元素从 map 复制到另一个 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14378821/