Как стать автором
Обновить

Комментарии 21

Маловато глав показано, хотя бы 4. Да и задании немного можно прям тут и выложить
Со временем буду добавлять новые главы и практикум. Причем новых постов создавать не стану.
Пусть будет только один (этот) пост.
Так а почему не взять практикум и вопросы из прошлых изданий и не обновить их в зависимости от новых изменений в 4-ом издании?
Спасибо! Во 2-м издании есть упражнения (практикум), которые действительно можно адаптировать. А что по поводу вопросов? Не подскажете ли, в каком издании они есть?
Посмотрите оригинал 4-го издания. Приятно удивитесь.
Есть еще такая вещь, как «Annotated Solution Guide for Thinking in Java», где сам же автор и разбирает все задачи. В том числе — и для четвертого издания.
Спасибо, удивился приятно! Добавлю информацию об упомянутых Вами книгах в статью.

Странно все-таки — почему в русскоязычном переводе все эти упражнения выбросили?

Раз уж сложилась такая ситуация, то буду переводить упражнения, опубликованные в оригинале, и размещать их после вопросов. Ответы на упражнения, наверное, приводить не стоит. Это будет просто дублирование книги
Annotated Solution Guide for Thinking in Java.
Можно ли как-нибудь использовать метод remove(), вызванный для контейнера?

Всегда убивали такие вопросы, ответов на который тьма, но спрашивающий хочет услышать что-то одно.
Тем более что и приведенный ответ абсолютно неверен. Метод Collection.remove(Object) не вызывает никаких toString(), он возвращает булево значение. И println(), соответственно, выведет true или false.
WraithOW, спасибо за уточнение. Однако, в вопросе подразумевается Collection.remove(), а не Collection.remove(Object).
Приведенный мной ответ верен при вызове метода remove() для контейнера Queue:

docs.oracle.com/javase/7/docs/api/java/util/Queue.html

а также см. пример решения упражнения 11.3. В нем есть такой кусочек:
while (queue.size() != 0)
        {
            System.out.println(queue.remove());
        }


Чтобы не возникало недоразумений, переформулирую пока вопрос следующим образом:
Какое значение возвращает метод remove(), вызванный для контейнера типа Queue?

Collection.remove()

Такого метода нет. А вот у потомков Collection есть свои перегруженные версии remove(), которые возвращают ссылку на исключаемый объект (но не в коем случае не его строковое значение!), с которой программист может делать все, что захочет — вызывать методы, помещать в другие контейнеры, и т.д.
На мой взгляд, ответов не такая уж и тьма, потому что типов контейнеров не «тьма». Однако, спасибо за замечание, лучше разобью один вопрос на несколько и сделаю их более конкретными
Достаточно ответить «Да, можно».
burdakovd, согласен, вопрос уже конкретизирован. Однако, что достаточно ответить, а что нет — решать Вам, потому что вы учитесь для себя и сами можете выбирать глубину и полноту Ваших ответов.

Данная статья на учебную, например, для студентов, конечно, не претендует. Она для тех, кто любит и хочет заниматься самообразованием.
почему вы называете коллекции контейнерами? Контейнерами в Java SE называют вполне конретные типы/объекты из AWT/Swing.
23derevo, потому что это терминология, используемая Б. Эккелем.

Цитата из оригинала книги на английском (стр. 297)
The java.util library has a reasonably complete set of container classes… List, Set, Queue, and Map. ...I shall use the more inclusive term «container.»
херово так переводить, потому что в России этот термин не используется. По крайней мере, я не слышал такого.
А можно поподробнее про
3. Какой метод добавления элементов в контейнер ArrayList является предпочтительным:
Arrays.asList или Collections.addAll и почему?


Имеется в виду конструкция col.addAll(Arrays.asList(1, 2, 3))?

Если col у нас ArrayList, а добавляем мы к нему достаточно большой массив, то, на мой взгляд, System.arraycopy (см. ArrayList.addAll) будет гораздо быстрее чем цикл по всем элементам (см. Collections.addAll).
Имеется в виду, например, следующая конструкция (см. стр. 282 книги):

Collection<Integer> collection = new ArrayList<Integer>(Arrays.asList(1, 2, 3, 4, 5)); Collections.addAll(collection, 11, 12);

Это не то же самое, что и конструция col.addAll(Arrays.asList(1, 2, 3)).

Друзья! Пост обновлен! Добавлены часть вопросов и упражнений к главе 17. Оставшаяся часть будет опубликована позднее. Пожалуйста, пишите, если какие-то моменты и ответы у Вас вызывают сомнения. В случае их подтверждения текст будет поправлен, а Вы обязательно упомянуты
Случаем не допереводили оригинальные задания из английского издания?

Или, может быть, где-нибудь в другом месте есть переведенные задания?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории