2016-05-19 11 views
3

Ich versuche, meinen Objective-C-Code in Java zu migrieren, um diese Programmiersprache zu lernen.Strukturiertes Array in Java

Ich möchte „convert“ die folgende ObjectiveC Struktur in Java, aber ich konnte die entsprechende Java-Struktur nicht gefunden:

g_vo2MaxFemales = @[ 
         @{ 
          @"fromAge": @(13), 
          @"tillAge": @(19), 
          @"beginner": @(29.95), 
          @"regular": @(36.95), 
          @"pro": @(40.5) 
         }, 
         @{ 
          @"fromAge": @(20), 
          @"tillAge": @(29), 
          @"beginner": @(28.25), 
          @"regular": @(35), 
          @"pro": @(39) 
         } 
         ... 
       ]; 

dem die ähnliche Java „Objekt“ ist?

+2

ein Array von Objekten –

+0

Könnten Sie den Code zeigen Sie mir? –

Antwort

1

Versuchen Sie diesen Code:

Descriptor.java

public class Descriptor { 

    private int fromAge; 
    private int tillAge; 
    private float beginner; 
    private float regular; 
    private float pro; 

    // CONSTRUCTORS 

    public Descriptor() {} 

    public Descriptor(int fromAge, int tillAge, float beginner, float regular, float pro) { 
     this.fromAge = fromAge; 
     this.tillAge = tillAge; 
     this.beginner = beginner; 
     this.regular = regular; 
     this.pro = pro; 
    } 

    // SETTER 

    public void setTillAge(int tillAge) { 
     this.tillAge = tillAge; 
    } 

    public void setFromAge(int fromAge) { 
     this.fromAge = fromAge; 
    } 

    public void setBeginner(float beginner) { 
     this.beginner = beginner; 
    } 

    public void setRegular(float regular) { 
     this.regular = regular; 
    } 

    public void setPro(float pro) { 
     this.pro = pro; 
    } 

    // GETTER 

    public int getTillAge() { 
     return tillAge; 
    } 

    public int getFromAge() { 
     return fromAge; 
    } 

    public float getBeginner() { 
     return beginner; 
    } 

    public float getRegular() { 
     return regular; 
    } 

    public float getPro() { 
     return pro; 
    } 

} 

Dann in Ihrer Aktivitätsklasse MainActivity.java Sie eine Struktur für Männer und eine für Frauen erklären können

Descriptor[] descriptorMale = { 
      new Descriptor(13, 19, 5f, 7f, 9f), 
      new Descriptor(20, 29, 6f, 13f, 16f), 
      new Descriptor(30, 39, 7f, 18f, 19f), 
      new Descriptor(40, 49, 8f, 29f, 33f), 
      new Descriptor(50, 59, 9f, 30f, 37f), 
      new Descriptor(60, 120, 10f, 41f, 44f) 
    }; 

    Descriptor[] descriptorFemale = { 
      new Descriptor(13, 19, 5f, 7f, 9f), 
      new Descriptor(20, 29, 6f, 13f, 16f), 
      new Descriptor(30, 39, 7f, 18f, 19f), 
      new Descriptor(40, 49, 8f, 29f, 33f), 
      new Descriptor(50, 59, 9f, 30f, 37f), 
      new Descriptor(60, 120, 10f, 41f, 44f) 
    }; 

Letzte Sie können die Getter/Setter-Methoden auf diese Weise verwenden:

descriptorMale[1].getBeginner(); 
descriptorFemale[3].setFromAge(18); 
3

Es ist einfach, wenn Sie die Klasse YourClass und den Konstruktor mit allen Instanzfeldern haben. Erstellen Sie einfach ein Array von YourClass.

YourClass[] array = { 
    new YourClass(13, 19, 29.95, 36.95, 40.5), 
    new YourClass(...), 
    ... 
}; 

Die Klasse wird wie folgt aussehen

class YourClass { 
    private int fromAge; 
    private int tillAge; 
    private double beginner; 
    private double regular; 
    private double pro; 

    public YourClass(int fromAge, int tillAge, double beginner, double regular, double pro) { 
     this.fromAge = fromAge; 
     this.tillAge = tillAge; 
     this.beginner = beginner; 
     this.regular = regular; 
     this.pro = pro; 
    } 
} 

Die Namen der Felder, die nicht schön sind, habe ich OPs Namen für sein Verständnis verwendet.


Mit Project Lombok Sie @AllArgsConstructor Anmerkung über der Klasse schreiben konnte und nicht diese massive Konstruktor schreiben. Es wird bei der Kompilierung für Sie generiert.

0

Sie können dies in Java mit einer ArrayList implementieren.

Beispielcode:

class ModelObject { 
    private Integer fromAge; 
    private Integer tillAge; 

    // followed by the other attributes 

    public ModelObject(Integer fromAge, Integer tillAge, ...){ 
    this.fromAge = fromAge; 
    this.tillAge = tillAge; 
    } 

    public Integer getFromAge(){ 
    return this.fromAge; 
    } 

    public Integer getTillAge(){ 
    return this.tillAge; 
    } 

    //getter for the outher attributes 

    public void setFromAge(Integer fromAge){ 
    this.fromAge = fromAge; 
    } 

    public void setTillAge(Integer tillAge){ 
    this.tillAge = tillAge; 
    } 

    //setter for the outher attributes 

    public static void main(String[] args) { 
     List<ModelObject> list = new ArrayList<ModelObject>(); 
     list.add(new ModelObject(fromAge, tillAge, ...)); 
    } 
} 
2

Die Klasse wird wie folgt aussehen.

public class MaxFemales { 

private int fromAge; 
private int tillAge; 
private double beginner; 
private double regular; 
private double pro; 

public MaxFemales(int fromAge, int tillAge, double beginner, double regular, double pro) { 
    this.fromAge = fromAge; 
    this.tillAge = tillAge; 
    this.beginner = beginner; 
    this.regular = regular; 
    this.pro = pro; 
} 

public int getFromAge() { 
    return fromAge; 
} 

public void setFromAge(int fromAge) { 
    this.fromAge = fromAge; 
} 

public int getTillAge() { 
    return tillAge; 
} 

public void setTillAge(int tillAge) { 
    this.tillAge = tillAge; 
} 

public double getBeginner() { 
    return beginner; 
} 

public void setBeginner(double beginner) { 
    this.beginner = beginner; 
} 

public double getRegular() { 
    return regular; 
} 

public void setRegular(double regular) { 
    this.regular = regular; 
} 

public double getPro() { 
    return pro; 
} 

public void setPro(double pro) { 
    this.pro = pro; 
} 
} 

Wo Sie es verwenden möchten, erstellen Sie auf die Array-Liste ein ArrayList<MaxFemales> mFemaleList = new ArrayList<MaxFemales>();

die Klasse bauen, alle Argumente zu geben und einfach hinzuzufügen.

Hoffe, das hilft.

0

Wörterbücher werden in Java als Maps bezeichnet. Anstatt Code wie diesen zu kopieren und einzufügen, würde ich vorschlagen, ein wenig über verschiedene Arten von Java-Karten zu lesen. Sie sind nicht konzeptionell schwer zu verstehen, wenn Sie Wörterbücher verstehen und nahezu identisch funktionieren.

http://www.tutorialspoint.com/java/java_map_interface.htm