如何传递整个地图

发布于 2024-12-11 12:35:41 字数 414 浏览 0 评论 0原文

有另一个问题。

我试图发送对象及其关联键的整个映射,以便可以从另一个类访问它。我使用的方法不起作用,因为我尝试使用与传递数组列表相同的方法,但它不适用于 Map。

正确的做法是什么?

这是我尝试过的

public Map <Integer, Employee> getAllEmps()
{ 
     return (Map <Integer, Employee>) ;
}

,这就是我声明它的方式(实际地图本身)

private static  Map <Integer, Employee> employeeMap = new TreeMap<Integer,Employee>();    

got another issue.

Im trying to send an entire Map of objects and their associated keys so that it can be accessed from another class. The method I am using does not work, as I tried to use the same method that is used to pass an array list, but it does not work for a Map.

what would be the correct way of doing it?

this is what I have tried

public Map <Integer, Employee> getAllEmps()
{ 
     return (Map <Integer, Employee>) ;
}

and this is how I have declared it (the actual map itself)

private static  Map <Integer, Employee> employeeMap = new TreeMap<Integer,Employee>();    

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

梦一生花开无言 2024-12-18 12:35:42

您可以返回变量本身:

public Map <Integer, Employee> getAllEmps()
{ 
     return employeeMap;
}

这将允许任何人修改地图的内容。

为了防止修改,您可以返回一个不可修改的Map:

public Map <Integer, Employee> getAllEmps()
{ 
     return Collections.unmodifiableMap(employeeMap);
}

或者,您可以返回一个副本:

public Map <Integer, Employee> getAllEmps()
{ 
     return new TreeMap<Integer,Employee>(employeeMap);
}

You can return the variable itself:

public Map <Integer, Employee> getAllEmps()
{ 
     return employeeMap;
}

Which would allow anyone to modify the contnent of the map.

To prevent modification, you can return an unmodifiableMap:

public Map <Integer, Employee> getAllEmps()
{ 
     return Collections.unmodifiableMap(employeeMap);
}

Alternatively, you can return a copy:

public Map <Integer, Employee> getAllEmps()
{ 
     return new TreeMap<Integer,Employee>(employeeMap);
}
逆光飞翔i 2024-12-18 12:35:42

您必须返回地图实例,而不是类型。

public Class SomeClass{
     private static Map<Integer,Employee> employeeMap=...;

    //Other methods 


   public Map <Integer, Employee> getAllEmps()
  { 
      return employeeMap ;
  }
}

如果您只想要员工(没有钥匙),您可以添加另一种方法

 public Collection<Employee> getEmployees(){

     return employeeMap.values();
  }

You have to return the map instance, not the type.

public Class SomeClass{
     private static Map<Integer,Employee> employeeMap=...;

    //Other methods 


   public Map <Integer, Employee> getAllEmps()
  { 
      return employeeMap ;
  }
}

If you want only the employees (with no keys) you can add another method

 public Collection<Employee> getEmployees(){

     return employeeMap.values();
  }
落墨 2024-12-18 12:35:42

为什么不尝试传递变量本身并将映射作为成员变量呢?

private Map <Integer, Employee> employeeMap = new Map <Integer, Employee>();    
public Map <Integer, Employee> getAllEmps()
{ 
     return employeeMap;
}

Why don't you try passing the variable itself and have the map as a member variable?

private Map <Integer, Employee> employeeMap = new Map <Integer, Employee>();    
public Map <Integer, Employee> getAllEmps()
{ 
     return employeeMap;
}
假扮的天使 2024-12-18 12:35:42

你的 getAllMaps() 函数需要实际返回一个地图;你的意思是返回静态的employeeMap?

Your getAllMaps () function needs to actually return a map; do you mean it to return the static employeeMap?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文