Как пройти всю карту - PullRequest
       8

Как пройти всю карту

0 голосов
/ 25 октября 2011

возникла другая проблема.

Я пытаюсь отправить всю Карту объектов и связанных с ними ключей, чтобы к ней можно было получить доступ из другого класса.Метод, который я использую, не работает, так как я пытался использовать тот же метод, который используется для передачи списка массивов, но он не работает для карты.

, что было бы правильным способом сделать это?

это то, что я пробовал

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

, и вот как я это объявил (сама карта)

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

Ответы [ 4 ]

2 голосов
/ 25 октября 2011

Вы можете вернуть саму переменную:

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

, которая позволит любому изменять содержимое карты.

Чтобы предотвратить изменение, вы можете вернуть немодифицируемую карту:

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

Кроме того, вы можете вернуть копию:

public Map <Integer, Employee> getAllEmps()
{ 
     return new TreeMap<Integer,Employee>(employeeMap);
}
2 голосов
/ 25 октября 2011

Вы должны вернуть экземпляр карты, а не тип.

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();
  }
1 голос
/ 25 октября 2011

Почему бы вам не попробовать передать саму переменную и получить карту в качестве переменной-члена?

private Map <Integer, Employee> employeeMap = new Map <Integer, Employee>();    
public Map <Integer, Employee> getAllEmps()
{ 
     return employeeMap;
}
0 голосов
/ 25 октября 2011

Ваша функция getAllMaps () должна фактически возвращать карту; ты имеешь в виду вернуть статическую карту employeeMap?

...