入力形式を変更する方法はないと思います。
クライアントを表すモデルを作成することをお勧めします。
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);
}
}