Comment créer un tableau, ArrayList, Stack et File D'attente en Java?
Je lisais un article Java, mais je n'ai trouvé aucune différence dans la déclaration et j'ai été confus. Quelqu'un peut-il me lister ce?
Ajout de l'Article
3 réponses
Sans plus de détails sur ce que la question se pose exactement, je vais répondre au titre de la question,
Créer un 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};
Créer un 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);
Cela signifie, créer un ArrayList
de String
et Integer
objets. Toi impossible utilisez int
parce que c'est un types de données primitives, voir le lien pour une liste des types de données primitifs.
Créer un Stack
:
Stack myStack = new Stack();
// add any type of elements (String, int, etc..)
myStack.push("Hello");
myStack.push(1);
Créer un Queue
: (à l'aide de 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);
Un ArrayList
, cette déclaration signifie créer un Queue
de String
et Integer
objets.
Mise à jour:
, En réponse à votre commentaire de l'autre réponse,
Je suis assez confus maintenant, pourquoi utiliser string. et qu'est-ce que
<String>
signifie
Nous n'utilisons {[10] } qu'à titre d'exemple pur, mais vous pouvez en ajouter d'autres object, mais le point principal est que vous utilisez un objet pas un type primitif. Chaque type de données primitives a sa propre classe wrapper primitive , voir le lien pour la liste de la classe wrapper du type de données primitives.
J'ai posté quelques liens pour expliquer la différence entre les deux, mais voici une liste de types primitifs
-
byte
-
short
-
char
-
int
-
long
-
boolean
-
double
-
float
Ce qui signifie que vous n'êtes pas autorisé à faire un {[8] } d'entier comme ceci:
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
Aussi, vous pouvez utiliser vos propres objets, voici mon Monster
objet que j'ai créé,
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.");
}
}
Ici, nous avons un Monster
objet, mais maintenant, dans notre Main.java
la classe, nous voulons garder une trace de tous nos Monster
's que nous créons, alors ajoutons-les à un 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();
}
}
(j'ai aidé le frère de ma petite amie avec un jeu Java, et il a dû faire quelque chose dans ce sens aussi, mais j'espère que l'exemple a été bien démontré )
Je suppose que vous êtes confondu avec le paramétrage des types:
// 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>();
Juste une petite correction à la première réponse dans ce fil.
Même pour Stack, vous devez créer un nouvel objet avec des génériques si vous utilisez Stack à partir de packages java util.
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");
Si utilisé autrement, comme mentionné dans le post ci-dessus, qui est:
/*
Stack myStack = new Stack();
// add any type of elements (String, int, etc..)
myStack.push("Hello");
myStack.push(1);
*/
Bien que ce code fonctionne bien, a des opérations non sécurisées ou décochées qui entraînent une erreur.