如何打印出arraylist以及如何向arraylist添加错误检查?

时间:2014-02-06 06:04:53

标签: java arraylist

我一直试图解决这个问题多年,没有运气我没有进展。请有人帮帮我。我创建了一个arrayList,制作了一个getter类,制作了一个方法。我也可以将数据添加到数组列表中,但是当我打印出arrayList时,它会输出一些随机文本。

下面的

是我创建的arrayList。

public static ArrayList<getArrayList> arrayList = new ArrayList<getArrayList>();

这是我的方法;

private static void addToArrayList(String a, double no1, int no2, int no3) {

        try {
            arrayList.add(new getArrayList(a, no1, no2, no3));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

这是我的getter类

public class getArrayList {
    private String name;
    private double seconds;
    private int speed1;
    private int speed2;


    public String getName() {
        return name;
    }



    public double getSeconds() {
        return seconds;
    }



    public int getSpeed1() {
        return speed1;
    }



    public int getSpeed2() {
        return Speed2;
    }



    public StoreCommands(String storeName, double storeSeconds, int storeSpeed1, int storeSpeed2) throws Exception{
        name =  storeName;
        seconds = storeSeconds;
        speed1 = storeSpeed1;
        speed2 = storeSpeed2;

        }

    }

在此列表中添加内容我使用我创建的方法

addToArrayList(String a, double no1, int no2, int no3) filled in with my values

并从arraylist接收我使用的东西

  for(getArrayList s : arrayList) {
System.out.println(arrayList + "\n")
        ;

如果我使用System.out.println(arrayList),它会打印出来,具体取决于我添加到arraylist的数量。

[StoreCommands@49a21b63]

除此之外,有人可以告诉我如何设置arrayList的大小,所以如果有更多的东西被添加,它将不会添加并给出错误。 此外,我需要在项目在arrayList中时执行某些错误检查 * 1st如果一个项目被添加到列表中,并且用户在我想要显示错误之后再尝试再次添加相同的项目..(用户可以添加相同的东西但不是直接在他们刚添加的那个之后,他们将需要先添加其他东西) *第二,如果说用户想要将苹果添加到列表中,我想在整个列表中将其限制为仅2次,超过不会添加并显示和错误。

请有人帮助我,我会非常感激。

感谢。

3 个答案:

答案 0 :(得分:0)

试试这个 -

for(getArrayList s : arrayList)
     System.out.println(s + "\n");//This print the tostring of getArrayList class

再次覆盖getArrayList类的toString方法,以打印对象的实际字段值。示例 -

public class getArrayList {
     public String toString(){
          return name +"||" +seconds+"||"+ speed1+"||"+speed2;
     }
}

注意:遵循java命名标准,首先你的类名称将是大写并且还给类的相关名称。

答案 1 :(得分:0)

您不必为了打印数组而循环,只需执行:

System.out.println(Arrays.toString(arrayList.toArray()));

ArrayList没有限制大小的机制,如果你想这样做 - 你必须实现它。

示例:

import java.util.ArrayList;    
/**
 * User: alfasin
 * Date: 2/5/14
 */
public class RestrictedSizeArrayList<E> extends ArrayList<E> {

    private static final int limit = 6;//example

    @Override
    public boolean add(E e){
        if(this.size() > 5){
            throw new IndexOutOfBoundsException("Can't add more than 5 elements to the ArrayList");
        }
        boolean result = super.add(e);
        return result;
    }
}

答案 2 :(得分:0)

覆盖toString方法将帮助您打印实际数据。在class getArrayList中覆盖它。还有一件事是类名应该以大写字母开头。

public String toString()
{
    return "Name  :  "+name+"  Seconds  : "+seconds+"  Speed1  :  "+speed1+"  Speed2  :  "+speed2;
}

并像

一样使用它
for(getArrayList s : arrayList)
   System.out.println(s.toString);

您可以通过添加支票来限制尺寸

private static void addToArrayList(String a, double no1, int no2, int no3) {

        try 
        {
           if(arrayList.size < 10) //any size you want
             arrayList.add(new getArrayList(a, no1, no2, no3));
           else
             System.out.println("ArrayList is full");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }