我假设不存在你可以改变输入格式。
我会建议你创建一个模型来表示一个客户端:
public class Client {
private final String name;
private final byte age; //Nobody should be older than 256
private final int total;
/* Construct model */
/* Getters/Functions */
}
我也建议你创建内部Client
一个工厂方法来创建从你的字符串输入的类。
public static Client parseClient(String clientRep){
String[] clientData = clientRep.split(',');
Client newClient = new Client(); //TODO: Name conventionally.
newClient.name = clientData[0];
newClient.age = Byte.valueOf(clientData[1]);
newClient.total = Integer.valueOf(clientData[2]);
return newClient;
}
现在,您可以将这些添加到地图(Map<String, Client>
)。
String clientFromWherever = getWhateverDataFromWherever();
Map<String, Client> clientel = new HashMap<>();
Client addingToMap = Client.parseClient(clientFromWherever);
clientel.put(addingToMap.getName() /* or however the name should be got */, addingToMap);
这应该做得很好。
=====
但是 - 如果你不应该要使用的客户端对象,我建议建立一个Map<String, int[]>
和存储阵列中的年龄和充电。如果您的收费不超过Short.MAXVALUE
请使用short[]
。存储大量的阵列列表(或任何复杂的集合)只是为了存储少量的数据是不必要的。
ArrayList<Row> rows = dao.getClientActivity();
Map<String, int[]> clientelData = new HashMap<>();
for(Row clientRow : rows) {
if (!map.containsKey(clientRow.clientName) {
int[] clientNumericalData = new int[2];
map.put(clientRow.clientName, clientNumericalData);
}
}