2017-04-20 3 views
-3

Ich bin neu in Java. Ich habe folgende Karte definiert:Wie definiere ich eine Map-Klasse in Java?

HashMap<String, Integer> data_validation = new HashMap<String, Integer>(); 

data_validation.put("ACF:T_RECORDS", 66); 
data_validation.put("ADF:V_RECORDS", 88); 

Set set = data_validation.entrySet(); 
Iterator iterator = set.iterator(); 
while (iterator.hasNext()) { 
    Map.Entry mentry = (Map.Entry) iterator.next(); 
    String file_type_name = mentry.getKey().toString().split(":")[0]; 
    String column_name = mentry.getKey().toString().split(":")[1]; 
    Integer records = Integer.parseInt(mentry.getValue().toString()); 
} 

Ich frage mich, wie man den obigen Code umgestalten. Wie kann ich dafür eine Java-Klasse erstellen? Irgendein Vorschlag?

+2

Was machen Sie genau das zu tun versuchen? – Berger

+2

@Berger War gerade dabei dasselbe zu fragen. Diese Frage ist sehr unklar. – Carcigenicate

+0

Ja, tut mir leid, immer noch nicht vertraut mit Java-Terminologie. –

Antwort

0

Statt eine Karte zu verwenden, eine Klasse mit drei Feldern erstellen:

  1. String fileTypeName
  2. String column
  3. int records

Dann legen die Daten in ein List, Füllen Sie diese Felder aus, anstatt diese String-Analyse/Manipulation zu machen.

List<MyClass> dataValidation = new ArrayList<>(); 
dataValidation.add(new MyClass("ACF", "T_RECORDS", 66)); 
dataValidation.add(new MyClass("ADF", "V_RECORDS", 88)); 

Wo MyClass ist so etwas wie:

public class MyClass { 
    private String fileTypeName; 
    private String columnName; 
    private int records; 

    public MyClass(String fileTypeName, String columnName, int records) { 
     this.fileTypeName = fileTypeName; 
     this.columnName = columnName; 
     this.records = records; 
    } 

    // Add getters, setters. 
} 
Verwandte Themen