Java 转换列表<;地图>;列出<;地图<;字符串,对象>&燃气轮机;

Java 转换列表<;地图>;列出<;地图<;字符串,对象>&燃气轮机;,java,Java,在下面的代码块中,我想将Map转换为Map。有没有更好的方法来实现我的目标 //用户->列表 List updateUsers=new ArrayList(); for(映射用户:用户){ user.put(enclosedListName,removeFromList(data,(List)user.get(enclosedListName)); updateUsers.add(用户); } someMethod(更新用户)//方法需要列表,如何直接使用用户而不是UpdateUsers 您可能

在下面的代码块中,我想将Map转换为
Map
。有没有更好的方法来实现我的目标

//用户->列表
List updateUsers=new ArrayList();
for(映射用户:用户){
user.put(enclosedListName,removeFromList(data,(List)user.get(enclosedListName));
updateUsers.add(用户);
}
someMethod(更新用户)//方法需要列表,如何直接使用用户而不是UpdateUsers

您可能想使用流(也可能不想!)

然而,主要问题是
对象
。通常,避免丢失以后需要的静态类型信息

我们有
列表
。大概
列表
的每个元素都可能具有不同的参数化
映射
s。根据您要对
映射执行的操作,有不同的选项

如果您只是在地图中移动元素和一些常用方法,则可以使用
map
并捕获该通配符:

// Will accept Map<String, ?>
static <T> void swapAB(Map<String, T> map) {
    // Odd behaviour involving nulls for this code - ignore that.
    T a = map.get("A");
    T b = map.get("B");
    map.put("A", a);
    map.put("B", b);
}
如果您想要实际值,并且存在一组固定的可能性,那么可以执行一种切换(退化访问者)

在那个匿名的内部类中

public void swtch(UpdateUserSwitch swtch) {
    swtch(map);
}

(如果愿意,您可以添加一个返回类型参数来代替
void

您可能希望使用流(也可能不使用!)

然而,主要问题是
对象
。通常,避免丢失以后需要的静态类型信息

我们有
列表
。大概
列表
的每个元素都可能具有不同的参数化
映射
s。根据您要对
映射执行的操作,有不同的选项

如果您只是在地图中移动元素和一些常用方法,则可以使用
map
并捕获该通配符:

// Will accept Map<String, ?>
static <T> void swapAB(Map<String, T> map) {
    // Odd behaviour involving nulls for this code - ignore that.
    T a = map.get("A");
    T b = map.get("B");
    map.put("A", a);
    map.put("B", b);
}
如果您想要实际值,并且存在一组固定的可能性,那么可以执行一种切换(退化访问者)

在那个匿名的内部类中

public void swtch(UpdateUserSwitch swtch) {
    swtch(map);
}

(如果愿意,您可以添加一个返回类型参数来代替
void

取决于您需要什么作为密钥以及允许什么类型的
对象。请准确更新您需要的内容。我已经有了bulkInsert(列表)的方法。我想使用现有的method@madcolonel10不特别是。这里的问题是
用户
正在使用原始类型。从源头上解决问题。您不必依赖强制转换。@Michael我直接从mongodb find方法获取用户,它以以下格式返回public List findUsersByApplicationId(字符串applicationId){Query q=new Query(Criteria.where(GetEnclosedEntityList()+“.itApplicationId”).is(applicationId));返回mongoTemplate.find(q,Map.class,getCollectionName());}@madcolonnel10如果您知道结果是
Map
,则可以进行强制转换。这取决于您需要什么作为键以及允许什么类型的
对象。请准确更新您需要的内容。我已经有了bulkInsert(列表)的方法。我想使用现有的method@madcolonel10不特别是。这里的问题是
用户
正在使用原始类型。从源头上解决问题。您不必依赖强制转换。@Michael我直接从mongodb find方法获取用户,它以以下格式返回public List findUsersByApplicationId(字符串applicationId){Query q=new Query(Criteria.where(GetEnclosedEntityList()+“.itApplicationId”).is(applicationId));返回mongoTemplate.find(q,Map.class,getCollectionName());}@madcolonel10如果您知道结果是
Map
,则可以进行强制转换。
public void swtch(UpdateUserSwitch swtch) {
    swtch(map);
}