2017-10-06 2 views
-3

Ich habe zwei ArraysWie kombiniere ich Arrays und Maps und damit etwas?

String[] names = {“bob”, “rob”}; //There are multiple arrays for various scenarios names1, names2 and so on… 
String[] features = {“age”, “weight”}; //There are multiple array for various scenarios features1 features2 and so on… 

und eine HashMap in einer Klasse, die Schlüssel und Werte für
Alter, Gewicht, Geschlecht, Beruf ......

ich Werte aus es wie folgt hat:

public ClassToGetValues (String name) {  

public String getValue(String key) { 
       return map.get(key); 
      } 

    private void buildMap(Paramenter1 paramenter1, Paramenter2, paramenter2) { 
       map.put("name", someFunction()); 
      map.put(.... 
     } 
    } 

ich benutze diese Arrays und Karte folgt zu drucken:
bob 30yr 160lbs
rob 4 0yr 170 £

private static void printMethod(String[] names, String[] features) { 

     for (String name : names) { 
      ClassToGetValues classToGetValues = new ClassToGetValues(name); 
      for (String feature : features) { 
       System.out.print(classToGetValues.getValue(feature) + " "); 

      } 
      System.out.println(); 
     } 

    } 

Jetzt möchte ich einige Methoden erstellen wie

Methode 1

public String criteriaOne(int age, int weight) { 
     if (age > 35 && weight > 160) { 
      // "Do something"; 
     } 
     return names; 
    } 

Methode 2

public String criteriaTwo(int age, String gender) { 
      if (age <70 && gender == “male”) { 
       // "Do something"; 
      } 
      return names; 
     } 

ich, dass ich bei der Schaffung dieser Methoden beginnen zu tun?

+2

Java ist eine objektorientierte Programmiersprache, Sie sollten Objekte für Ihre Daten verwenden und dieses Problem wird viel einfacher. –

+0

Sie sollten mehr funktional denken und in lambdas schauen. Alle diese Kriterien passen perfekt in die Schnittstellen im Paket java.util.function. – duffymo

+0

Lösen Sie die Lösung auf eine Weise, die zur Sprache gehört. Erstellen Sie also eine Klasse mit der benötigten Struktur, nicht mit Arrays und Maps. –

Antwort

0

In Java würden Sie eine Klasse Person erstellen, um Daten zu einer Person zu speichern, anstatt diese Daten in verschiedenen Datenstrukturen zu speichern. Nun, es kann einige externe Einschränkungen geben, die Sie dazu bringen, obwohl Java nicht so verwendet werden soll. Mein Rat ist, eine Klasse erstellen und eine Liste oder Karte dieses Typs halten:

public class Person { 
    private String name; 
    private int age; 
    private double weight; 

    public Person(String name, int age, double weight) { 
     this.name = name; 
     this.age = age; 
     this.weight = weight; 
    } 

    public String getName() { 
     return this.name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public int getAge() { 
     return this.age; 
    } 

    public void setAge(int age) { 
     this.age = age; 
    } 

    public double getWeight() { 
     return this.weight; 
    } 

    public void setWeight(double weight) { 
     this.weight = weight; 
    } 

    @Override 
    public String toString() { 
     String s = String.format("Person %s is %d years old and weighs %f lbs", name, String.valueOf(age), String.valueOf(double)); 
     return s; 
    } 

dann erstellen Sie eine einzelne List<Person>, fügen Sie einige Person s und ausdrucken jedes Person ‚s Daten wie

List<Person> persons = new ArrayList<Person>(); 
persons.add(new Person("Bob", 23, 160); 
persons.add(new Person("Rob", 20, 120); 
for (Person p : persons) { 
    System.out.println(p.toString()); 
} 
Verwandte Themen