List<Map<String, Object>> pcList = new ArrayList<Map<String, Object>>();
Map<String, Object> pcMap = new HashMap<String, Object>();
ComputerConfigurations tempPC = null;
if (historyList != null) {
Iterator<ComputerConfigurations> iterator = historyList.iterator();
while (iterator.hasNext()) {
tempPC = (ComputerConfigurations) iterator.next();
pcMap.put(tempPC.getEnvironment(), tempPC);
pcList.add((Map<String, Object>) pcMap);
}
}
In Java, collections won't magically spring into existence just by adding something to them. You have to initialize pcList
by creating an empty collection first:
List<Map<String, Object>> pcList = new ArrayList<>();
An empty collection isn't the same as null
. An empty collection is actually a collection, but there aren't any elements in it yet. null
means no collection exists at all.
Note that an object can't be of type List
, because that's an interface; therefore, you have to tell Java what kind of List
you really want (such as an ArrayList
, as I've shown above, or a LinkedList
, or some other class that implements List
).
You're not initialising pcList
at any point. Try this:
final List<Map<String, Object>> pcList = new LinkedList<>();
Map<String, Object> pcMap = new HashMap<String, Object>();
ComputerConfigurations tempPC = null;
if (historyList != null) {
Iterator<ComputerConfigurations> iterator = historyList.iterator();
while (iterator.hasNext()) {
tempPC = (ComputerConfigurations) iterator.next();
pcMap.put(tempPC.getEnvironment(), tempPC);
pcList.add((Map<String, Object>) pcMap);
}
}
Here is an example based answer. In this example below pcList is just initialized and is pointed to null(java do this for you, if it's a static or class member) since there are no empty list or values assigned to it.
List<Map<String, Object>> pcList;
Right now, pcList is assigned a new empty ArrayList. It does not have any values yet, but all positions in the list are empty and this pcList with the datatype ArrayList is pointed towards this new empty ArrayList.
List<Map<String, Object>> pcList = new ArrayList<>();
If an Object reference has been declared but not instantiated, its value is null.