I need to create Objects of a class called “Tile”. I have 9×9 chess board like grid and want to initiate the whole board at once. The position of a Tile is defined by an x and y-axis and I need to work with those later.
I thought about doing it with a loop but I want each object to have different names if that is possible.
The following code works for creating a List and filling it with the Objects I need.
My question is, how can I work with Elements in that list?
tileList.get("index")."attribute"doesn’t work.
Every advice on how you would do it in a different way is appreciated, as I am really trying to learn.
public class Main {
public static void main(String[] args) {
List<Tile> tileList = new ArrayList<Tile>(9);
//These loops just set the values for the Coordinates
//a total of 9 Objects is created
for(int i = 1; i<4; i++) {
for(int j = 1; j<4; j++) {
Tile t = new Tile(i,j);
tileList.add(t);
}
Advertisement
Answer
Lists are not like normal array , its mutable , you don’t need to specify your list length , so you can declare a list simply like :
List<Tile> tiles = new ArrayList<>();
//then you fill it using nested for
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
tiles.add(new Tile(i,j));
}
}
your list now should have 9 point of (x,y) pair , thier value is : (0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)
you can access a specific item by using :
Tile myTile = tiles.get(yourIndex);
if your Tile class has a property x , you can get it like :
int x = myTile.getX();
Note : I assumed that you have getters in your Tile class .
You can check this simple tutorial to better understand of how lists works .