如何在Java中创建Array,ArrayList,Stack和Queue?

Kev*_*vin 40 java declaration data-structures

我正在阅读一篇Java文章,但发现声明没有差异,并且感到困惑.任何人都可以列出这个吗?

添加了文章

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

Ant*_*ney 71

如果没有更详细的问题,我将回答问题的标题,

创建一个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};
Run Code Online (Sandbox Code Playgroud)

创建一个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);
Run Code Online (Sandbox Code Playgroud)

这意味着,创建ArrayListStringInteger对象.您不能使用int因为这是原始数据类型,请参阅链接以获取原始数据类型列表.

创建一个Stack:

Stack myStack = new Stack();
// add any type of elements (String, int, etc..)
myStack.push("Hello");
myStack.push(1);
Run Code Online (Sandbox Code Playgroud)

创建一个Queue:( 使用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);
Run Code Online (Sandbox Code Playgroud)

同样的事,作为一个ArrayList,这个声明意味着创建QueueStringInteger对象.


更新:

回答你对其他答案的评论,

我现在很困惑,为什么要使用字符串.什么<String>意思

我们仅使用String纯粹的示例,但您可以添加任何其他对象,但重点是您使用的对象 不是基本类型.每个原始数据类型都有自己的原始包装类,请参阅原始数据类型包装类列表的链接.

我已经发布了一些链接来解释两者之间的区别,但这里有一个原始类型列表

  • byte
  • short
  • char
  • int
  • long
  • boolean
  • double
  • float

这意味着,你不能ArrayList像这样做一个整数:

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
Run Code Online (Sandbox Code Playgroud)

此外,您可以使用自己的对象,这是我Monster创建的对象,

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.");
 }
} 
Run Code Online (Sandbox Code Playgroud)

在这里我们有一个Monster对象,但现在在我们的Main.java课堂上我们要记录Monster我们创建的所有内容,所以让我们将它们添加到一个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();
 }
}
Run Code Online (Sandbox Code Playgroud)

(我用Java游戏帮助了我女朋友的兄弟,他也必须按照这些方式做一些事情,但我希望这个例子得到很好的证明)