Ich bin von C++ Hintergrund und in C++ können wir Zeiger verwenden und speichern eine Sammlung von mehreren Datentypen in einem Vektor, aber wie machen wir das in Java. Zum Beispiel möchte ich speichern: {Name, Preis/Pfund, Gewicht} {Name, Preis} Es ist eine Art von Bäckerei-Empfangsprogramm.Wie speichert man eine Sammlung von mehreren Datentypen in einem Vektor in Java?
Antwort
Java ist eine sehr objektorientierte Sprache, die stark auf Klassen und Objekte ausgerichtet ist. Vielleicht finden Sie es einfacher für ein Receipt
eine Klasse zu haben, und speichern Sie dann nur eine Array Quittung
Sie können oder wollen nicht eine Liste von Products
in der Receipt
Klasse aber haben. Auf diese Weise können Sie mehrere Artikel auf einem einzigen Beleg haben. Dies würde auch eine Product
Klasse benötigen, und in der Receipt
Klasse könnten Sie name
, pricePerPound
, weight
in eine Liste von Produkten ändern, und Ihre Product
Klasse würde stattdessen diese Variablen speichern. Jedes Produkt würde dann einen Namen, Preis pro Pfund und ein Gewicht
public class Receipt {
String name;
double pricePerPound;
double weight;
//Constructor
public Receipt() {
}
//Other methods can go here, like getters and setters
}
Dann können Sie einfach ein Array von Receipts
Receipt[] receipts = new Receipt[10];
Oder Sie können java.util.ArrayList
verwenden, um einen Datentyp zu erhalten, die variiert in Größe
ArrayList<Receipt> receipts = new ArrayList<>(); //ArrayList of type Receipt
Siehe ArrayList Dokumentation zu den Methoden, die Sie
verwenden könnenDie korrekte Vorgehensweise in Java besteht darin, eine Schnittstelle zu erstellen, die die allgemeinen Attribute von Objekten darstellt, die in der Sammlung gespeichert werden sollen, und anschließend jede Klasse dieser Objekte diese Schnittstelle implementieren soll.
interface BakeryItem {
String getName();
float getPrice();
}
class WeightedItem {
private final float weight;
private final float pricePerPound;
public float getPrice() {
return weight * pricePerPound;
}
}
List<BakeryItem> bakeryItems;
Wenn Sie bestimmte Attribute der verschiedenen Klassen verwenden müssen dann empfehle ich die visitor pattern mit der Logik von den Daten zu trennen.
Das Speichern verschiedener Klassen in einer Sammlung ist möglich mit List<Object>
und Casting bei Abruf, aber dies ist keine empfohlene Vorgehensweise aus einer Vielzahl von Gründen.
- 1. Wie speichert man die Sammlung von Modellen in backbone.js?
- 2. Wie speichert man Referenzen auf Objekte aus einem Vektor in einem anderen Vektor in C++?
- 3. Wie speichert man verschiedene Datentypen in einer Liste? (C++)
- 4. C# - Speichern von Datentypen in einem Array
- 5. Wie man einen Vektor von ganzen Zahlen in Java haben
- 6. Wie speichert man Baumstrukturen in Java?
- 7. Wie speichert man eine Datei in Bits mit Java?
- 8. Wie speichert man einen Verweis auf eine Klasse in Java?
- 9. Wie platziert man eine Sammlung in einem Modell in Backbone.js?
- 10. Wie speichert C verschiedene Datentypen im Speicher?
- 11. Wie speichert man eine Datei in LDAP?
- 12. Wie speichert man eine globale Variable in einem Kolben?
- 13. Pandas: Wie speichert man eine Liste in einem Datenrahmen?
- 14. Scala: Wie man eine Funktion in einem var "speichert"?
- 15. Wie man Daten von mehreren URLs erhält und in einem einfachen Array speichert?
- 16. Wie man eine Zeichenkette von einem Uitextfield zu KeyChain speichert
- 17. Wie konvertiert man eine Java-Sammlung von Bildern zu CvArr
- 18. Wie erstellt man eine Struktur mit einem Vektor von Referenzen?
- 19. Wie speichert man Variablen aus einem Spiel in einem Ordner?
- 20. Wie konvertiert man Vektor in Java in String?
- 21. Java speichert zwei Ints in einem langen
- 22. Wie speichert man Daten in einem bestimmten Format? in WYSWYG?
- 23. Wie speichert man eine Liste von benutzerdefinierten Modellen in Django?
- 24. Wie man das Ergebnis von $ http.get in eine Variable speichert
- 25. Wer kann herausfinden, wie man eine JSON-Zeichenfolge in einer DocumentDB-Sammlung speichert?
- 26. Wie man Guava Multimap Einträge in Java Util List speichert?
- 27. Wie speichert man einen Vektor <bool> oder ein Bitset in eine Datei, aber bitweise?
- 28. Wie kann ich eine Sammlung von Business-Objekte aus mehreren Elementen in einem XmlDocument erstellen
- 29. Wie speichert man Enums in Realm?
- 30. Wie eine Feature-Sammlung von einem
BakeryItem scheint nur eine Klasse zu sein ... Sie machen also ein Objekt, das der Vektor (vorzugsweise ein Arraylist) speichern würde –
Dies ist zu allgemein, um eine sinnvolle Antwort zu geben. Sollten wir sehen, wie Ihre Klassen aussehen, was Sie vorhaben und wo Sie stecken bleiben? – shmosel
@smossel Dies ist nicht zu allgemein für einen C++ - Programmierer. Wir sind es gewöhnt, alle Arten von Dingen an verschiedenen Orten anzubringen, von denen einige nicht völlig angemessen sind. Zeiger können schöne und nützliche Dinge sein. –