Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что такое LinkedList и с чем его есть ! 
V
    Опции темы
Akonkagva
Дата 7.11.2009, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 4.1.2008

Репутация: нет
Всего: нет



Собственно начал изучать разницу между массивом и связанным листом и возник вопрос по тому как пользоваться им, хотелось бы конкретный простой примерчик(по LinkedList). Погуглив в нете я нашёл массу с примеров, но хм эти примеры они как будто бы с нуля создают связанный лист, который уже описан в документации(( 
Непонимаю почяму просто неиспользовать что то типо:
Код

LinkedList myList = new LinkedList();
LotteryMachine myLotteryMachine = null;
LotteryBall myLotteryBall = null;
myLotteryMachine = new LotteryMachine(); // создаём лотерейную машину
for (int i = 0; i < 6;i++)
{
  myLotteryBall =  myLotteryMachine.chooseBall(); // выбираем раннее невыбраный мячик ))
  myList.add(myLotteryBall);
}
for (int i = 0; i < 6;i++)
{
  Object val = myList.get(i); 
  myLotteryBall = (LotteryBall)val;
  print(myLotteryBall.getValue());
}
 
Ниже ресурсы откуда я черпал информацию...
ссылка 1
ссылка 2
ссылка 3
Зачем  использовать сверх сложные конструкции я непонимаю, возможно да и скорее всего я что-то недопонимаю...
Буду признателен за обьяснение !

Это сообщение отредактировал(а) Akonkagva - 7.11.2009, 21:37
PM MAIL   Вверх
duk
Дата 7.11.2009, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Some Object
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 19.7.2007

Репутация: 4
Всего: 4



Akonkagva, так что Вам не понятно, если Вы сами написали пример использования списка?
PM MAIL   Вверх
Akonkagva
Дата 7.11.2009, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 4.1.2008

Репутация: нет
Всего: нет



Мне непонятно зачем другие в качестве примеров используют столь сложные, нереально непонятные примеры...

PM MAIL   Вверх
duk
Дата 8.11.2009, 01:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Some Object
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 19.7.2007

Репутация: 4
Всего: 4



Я откуда знаю? Сами коллекции достаточно простые, чтоб разобраться с ними используя Java документацию.
PM MAIL   Вверх
ivanovpv
Дата 9.11.2009, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 4
Всего: 28



LinkedList он же связанный список = это пример списка, где элемент списка "знает" где находится следующий или предыдущий элемент списка. Массив не является связанным списком, поскольку элемент массива "не знает" кто является следующим за ним в списке. Правило обхода массива неявно задается индексом массива. 

Связанные списки бывают однонаправленные (элемент знает следующего или предыдущего) и двунаправленные (элемент знает и предыдущего и последующего). В нутрях выглядит примерно так:

Код

class MyLinkedListElement
{
     private MyLinkedListElement next; //показывает на следующий элемент списка (в обычном списке этого указателя нет)
     private String blahblah;

     public MyLinkedListElement getNext() {return next;}
}


Стандартный java.util.LinkedList реализует двунаправленный связанный список. Уровень абстрагирования в стандартном java.util.LinkedList такой, что связанность списка видна только при использовании итератора, а так снаружи он выглядит как обычный список - где правило обхода фактически соответствует индексу списка.

Связанные списки обычно удобно использовать для древообразных структур данных, самый простой и понятный пример файловая система, когда каждый кластер "знает" кто за ним следующий кластер того или иного файла.


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
sergioK
Дата 11.11.2009, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 15.2.2008

Репутация: нет
Всего: нет



Цитата(Akonkagva @ 7.11.2009,  21:19)
Собственно начал изучать разницу между массивом и связанным листом и возник вопрос по тому как пользоваться им, 

1, в массиве данные находяться последовательно в памяти , скажем нyлевой элемент по адресу АА00 первый AA04 - второй AA08 (т,е, прибавляеться кол-во байт 
элемента массива )   в списке они разбросаны , т,е next - это поинтер на следующий элемент 
2, внесение нового элемента или стирирание требует сдвигания массива , в ArrayList это делают за вас ,  т,е, происходит реалокация памяти , и делать это
   часто  то могут возникнуть проблемы , что бы избежать  это и был придуман LinkList,
 
   связаный список делает это одной операцией т,е O(1) а не O(n) , 

3, Советую почитать Керниган, Ричи , чтобы почувсвовать что такое LinkList

Вопрос не по теме , сегодня уже перестали преподавать С?  про асемблер я даже спрашивать боюсь  smile 
    
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0675 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.