我假設不存在你可以改變輸入格式。
我會建議你創建一個模型來表示一個客戶端:
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);
}
}