我一直试图解决这个问题多年,没有运气我没有进展。请有人帮帮我。我创建了一个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次,超过不会添加并显示和错误。
请有人帮助我,我会非常感激。
感谢。
答案 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();
}
}