Простое объяснение ArrayLists - PullRequest
2 голосов
/ 12 ноября 2011

Я новичок в программировании и ищу простой ответ, чтобы заложить основу для понимания массивов. Я использовал Google и искал этот сайт.

После небольшого проб и ошибок я понимаю, как создавать и ссылаться на массивы как вещь [3], чтобы получить четвертую вещь в массиве вещей (так как 0 - первый). который позволяет мне сделать что-то вроде thing [3] .getStupidNumber (), чтобы получить StupidNumber четвертой вещи в массиве вещей.

Затем я попадаю в ArrayLists, которые, кажется, имеют гораздо больше полезности, но я не могу понять их логически, как Arrays. Когда я ищу, я не могу найти это или слово это правильно, и пока все остальное, что я выучил, щелкнуло легко.

скажем, я делаю ArrayList с 5 вещами. как мне добраться до метода .getStupidNumber () внутри четвертого, если это возможно? Я думаю, что если я узнаю это, я смогу выучить все остальное самостоятельно.

Ответы [ 3 ]

3 голосов
/ 12 ноября 2011

Допустим, у вас есть класс с именем StupidThing

class StupidThing {
    int getStupidNumber(){return 1;}
}

List list = new ArrayList(); 
// This list represents a list of Object. It can hold only object. 
StupidThing stupidThing = new StupidThing();

и вы хотите иметь массив StupidThings. Мы можем добавить stupidThing в массив.

list.add(stupidThing); 

Имейте в виду, что список представляет собой массив объектов. Следовательно, list.get (0) вернет первый stupidThing как объект. Чтобы вызвать метод StupidThing, вам нужно вернуть возвращаемый объект в StupidThing;

int stupidNumber = ( (StupidThing) (list.get(0)) ).getStupidNumber(); 

Если вам не нравится «downcast», вы можете вместо этого использовать список StupidThing.

List<StupidThing> list = new ArrayList<StupidThing>(); 
// Now list can only hold instances of StupidThing  
StupidThing stupidThing = new StupidThing();
list.add(stupidThing); 
int stupidNumber = list.get(0).getStupidNumber();
0 голосов
/ 12 ноября 2011

Тебе нужно узнать об универсальности. см. Обобщения в Java

0 голосов
/ 12 ноября 2011

ArrayListList в целом) имеет позиционный метод get, который действует практически так же, как оператор массива [].

ArrayList<StupidThing> list = ...;

list.get(3).getStupidNumber( );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...