Hey Leute,
bräuchte euren professionellen Rat bei folgendem Problem:
Ich habe Array-Lists erzeugt, um beim Initialisieren von Objekten Objekte gleicher Art zusammenzufassen, wobei die Zuordnung zu einer bestimmten Array-List abhängig von einer objektspezifischen ID ist. Der Quellcode schaut folgendermaßen aus:
ArrayList <Inventories> hardware=new ArrayList<Inventories>(100);
ArrayList <Inventories> software=new ArrayList<Inventories>(100);
// Constructor for item
public Inventories (int ID, String description) {
this.ID=ID;
this.description=description;
//add item to Inventory Group
if (this.ID>=1&this.ID<=10) {
//ensure capacity for ArrayList
for (int i = 0; i <= 100; i++)
hardware.add(null);
hardware.add(this.ID,this);
}
else if (this.ID>=11&this.ID<=20) {
//ensure capacity for ArrayList
for (int i = 0; i <= 100; i++)
software.add(null);
software.add(this.ID,this);
Mit einer weiteren Methode definiere ich eine Schnittstelle, um produktspezifische Informationen aus der ArrayList abzurufen:
public void getProductInformation(int ID){
if (ID>=1&ID<=10) {
String productinfo1= hardware.get(ID).description.toString();
System.out.println("The procuct wearing ID number " + ID + " is a " + productinfo1);
}
else if (ID>=11&ID<=20) {
String productinfo1= hardware.get(ID).description.toString();
System.out.println("The procuct wearing ID number " + ID + " is a " + productinfo1);
}
}
In der main-Klasse lassen sich Informationen aus der ArrayList "Hardware" problemlos abrufen, erzeuge ich allerdings ein Objekt mit einer ID größer 10 und will ich die produktspezifischen Informationen aus der Array-List "Software" abfragen, so wird folgende Exception getriggered:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1, Size: 00
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at Warehouse.Inventories.getProductInformation(Inventories.java:61)
Kann mir jemand von euch vielleicht erklären, weshalb sich das Programm hier unterschiedlich verhält, obwohl beide ArrayLists und auch die Schnittstellen zu den abgespeicherten Informationen ident definiert wurden?
Vielen Dank für euer Hilfe und beste Grüße,
Alex