如何在Java中创建Array和ArrayList

时间:2013-10-25 12:29:10

标签: java arraylist

我需要创建一个数组,并从数组的末尾添加和删除 问题是我被要求构建Arraylist构造函数来初始化数组“列表”但是我得到了错误 我该怎么办?!!!

01。创建ArrayList(-1)的实例。列表大小将变为10
02.添加15项。只增加10个 03.这是清单
A C E G I K M O Q S
04.呼叫删除三次
05.这是清单
A C E G I K M
06.调用expandByTen
07.这是清单
A C E G I K M
08.增加15项。
09.这是清单
A C E G I K M B D F H J L N P R T V X Z

import java.util.ArrayList;   

public class Main{

    /**
     * @param args
     */

     // create an array list

        char []list;
  int length;

  ArrayList(int maxSize)
   {
       if (maxSize<=0)
          length=10;
       else
           length=maxSize;

   }

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        ArrayList arrayList;
        System.out.println("01. Creating an instance of ArrayList(‐1). The list size will become 10");
        arrayList = new ArrayList(‐1);
        System.out.println("02. Adding 15 items. Only 10 will be added");
        for (int i = 65; i < 96; i += 2) {
           arrayList.insertEnd((char) i);
        }
        System.out.println("03. Here is the list");
        arrayList.print();
        System.out.println("04. Calling delete three times");
        arrayList.deleteEnd();
        arrayList.deleteEnd();
        arrayList.deleteEnd();
        System.out.println("05. Here is the list");
        arrayList.print();
        System.out.println("06. Calling expandByTen");
        arrayList.expandByTen();
        System.out.println("07. Here is the list");
        arrayList.print();
        System.out.println("08. Adding 15 items.");
        for (int i = 66; i `enter code here`< 97; i += 2) {
           arrayList.insertEnd((char) i);
        }
        System.out.println("09. Here is the list");
        arrayList.print();
      }
    }

3 个答案:

答案 0 :(得分:2)

ArrayList已经存在...您不需要编写这样的构造函数:ArrayList(int maxSize)

就像您在ArrayList方法中所做的那样实例化main

List myList = new ArrayList(); //don't add a -1 parameter

然后,巧妙地使用您在Java API

中找到的ArrayList方法
myList.add(...);
myList.remove(...);
myList.size();

答案 1 :(得分:2)

Arraylist动态分配大小,在向其添加元素时增加大小。 。所以你可以创建如下的arraylist。

 ArrayList arrayList= new ArrayList(10);

 ArrayList arrayList= new ArrayList();

您无法创建大小为-1的ArrayList。将new ArrayList(-1);替换为new ArrayList();

从程序中删除以下无用的代码。它根本不起作用

 ArrayList(int maxSize)
   {
       if (maxSize<=0)
          length=10;
       else
           length=maxSize;

   }

print();

中没有方法deleteEnd();insertEnd((char) i);Arraylist

答案 2 :(得分:0)

  • 我看不到你在哪里创建char数组的新实例。对它的任何引用都将生成NullPointerException
  • 我没有看到会产生编译错误的ArrayList.insertEnd(..)的声明或实现,所以我假设你没有把它包含在这里(同样适用于deleteEnd和{{1}等等)。
  • 假设您正在使用构造函数中定义的长度创建expandByTen实例,如果构造函数参数小于或等于零,则将大小设置为10。在char[]方法中,您实例化一个大小为-1的main实例,该实例应该(根据您提供的内容很少)创建(某处)ArrayList的实例大小为10的字段。但是,您的第一个循环尝试进行15次迭代,如果您没有在list方法中进行适当的边界检查,则会在运行时生成IndexOutOfBounds异常。

我出去了,并猜测你这是作为学校的任务吗?如果没有,请注意Java在java.util.ArrayList包中有很多容器,包括java.util