Ich habe einen Java-Artikel gelesen, aber keine Unterschiede in der Deklaration gefunden und war darüber verwirrt. Kann mir jemand diese Liste aus?
Den Artikel hinzugefügt
Ich habe einen Java-Artikel gelesen, aber keine Unterschiede in der Deklaration gefunden und war darüber verwirrt. Kann mir jemand diese Liste aus?
Den Artikel hinzugefügt
Ohne genauer zu wissen, worum es in der Frage genau geht, werde ich den Titel der Frage beantworten,
Erstellen einer Array
:
String[] myArray = new String[2];
int[] intArray = new int[2];
// or can be declared as follows
String[] myArray = {"this", "is", "my", "array"};
int[] intArray = {1,2,3,4};
Erstellen einer ArrayList
:
ArrayList<String> myList = new ArrayList<String>();
myList.add("Hello");
myList.add("World");
ArrayList<Integer> myNum = new ArrayList<Integer>();
myNum.add(1);
myNum.add(2);
Das heißt, erstellen Sie eine ArrayList
de String
y Integer
Objekte. Sie だめ verwenden. int
denn das ist ein primitive Datentypen Eine Liste der primitiven Datentypen finden Sie unter dem Link.
Erstellen einer Stack
:
Stack myStack = new Stack();
// add any type of elements (String, int, etc..)
myStack.push("Hello");
myStack.push(1);
Erstellen einer Queue
: ( mit LinkedList )
Queue<String> myQueue = new LinkedList<String>();
Queue<Integer> myNumbers = new LinkedList<Integer>();
myQueue.add("Hello");
myQueue.add("World");
myNumbers.add(1);
myNumbers.add(2);
Das Gleiche wie ein ArrayList
bedeutet diese Deklaration die Erstellung eines Queue
de String
y Integer
Objekte.
Als Antwort auf Ihren Kommentar in der anderen Antwort,
Ich bin jetzt ziemlich verwirrt, warum verwenden Sie String. und was bedeutet
<String>
bedeutet
Wir verwenden String
nur als ein reines Beispiel, aber Sie können auch jede andere Objekt aber der wichtigste Punkt ist, dass Sie eine Objekt no ein primitiver Typ. Jeder primitive Datentyp hat seine eigene primitive Wrapper-Klasse siehe Link für die Liste der Wrapper-Klassen der primitiven Datentypen.
Ich habe einige Links gepostet, um den Unterschied zwischen den beiden zu erklären, aber hier ist eine Liste der primitiven Typen
byte
short
char
int
long
boolean
double
float
Das bedeutet, dass Sie nicht in der Lage sind, eine ArrayList
von ganzen Zahlen, etwa so:
ArrayList<int> numbers = new ArrayList<int>();
^ should be an object, int is not an object, but Integer is!
ArrayList<Integer> numbers = new ArrayList<Integer>();
^ perfectly valid
Sie können auch Ihre eigenen Objekte verwenden, hier ist mein Monster
Objekt, das ich erstellt habe,
public class Monster {
String name = null;
String location = null;
int age = 0;
public Monster(String name, String loc, int age) {
this.name = name;
this.loc = location;
this.age = age;
}
public void printDetails() {
System.out.println(name + " is from " + location +
" and is " + age + " old.");
}
}
Hier haben wir eine Monster
Objekt, aber jetzt in unserem Main.java
Klasse wollen wir eine Aufzeichnung über alle unsere Monster
die wir erstellen, also fügen wir sie zu einer ArrayList
public class Main {
ArrayList<Monster> myMonsters = new ArrayList<Monster>();
public Main() {
Monster yetti = new Monster("Yetti", "The Mountains", 77);
Monster lochness = new Monster("Lochness Monster", "Scotland", 20);
myMonsters.add(yetti); // <-- added Yetti to our list
myMonsters.add(lochness); // <--added Lochness to our list
for (Monster m : myMonsters) {
m.printDetails();
}
}
public static void main(String[] args) {
new Main();
}
}
( Ich habe dem Bruder meiner Freundin bei einem Java-Spiel geholfen, und er musste auch etwas in dieser Richtung tun, aber ich hoffe, das Beispiel war gut demonstriert )
Ich vermute, Sie sind mit der Parametrisierung der Typen verwirrt:
// This works, because there is one class/type definition in the parameterized <> field
ArrayList<String> myArrayList = new ArrayList<String>();
// This doesn't work, as you cannot use primitive types here
ArrayList<char> myArrayList = new ArrayList<char>();
Nur eine kleine Korrektur zur ersten Antwort in diesem Thread.
Auch für Stack müssen Sie ein neues Objekt mit Generika erstellen, wenn Sie Stack aus Java-Ul-Paketen verwenden.
Right usage:
Stack<Integer> s = new Stack<Integer>();
Stack<String> s1 = new Stack<String>();
s.push(7);
s.push(50);
s1.push("string");
s1.push("stack");
wenn es anders verwendet wird, wie im obigen Beitrag erwähnt, d.h.:
/*
Stack myStack = new Stack();
// add any type of elements (String, int, etc..)
myStack.push("Hello");
myStack.push(1);
*/
Obwohl dieser Code gut funktioniert, hat er unsichere oder ungeprüfte Operationen, die zu Fehlern führen.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.