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

Http://www.theparticle.com/javadata2.html

33
demandé sur Anthony Forloney 2010-04-25 21:23:46

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é )

66
répondu Anthony Forloney 2010-04-25 23:33:43

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>();
2
répondu 2010-04-25 17:27:46

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.

1
répondu Prashanth Peddabbu 2016-06-30 20:33:12