Комментарии 21
Маловато глав показано, хотя бы 4. Да и задании немного можно прям тут и выложить
Так а почему не взять практикум и вопросы из прошлых изданий и не обновить их в зависимости от новых изменений в 4-ом издании?
Спасибо! Во 2-м издании есть упражнения (практикум), которые действительно можно адаптировать. А что по поводу вопросов? Не подскажете ли, в каком издании они есть?
Посмотрите оригинал 4-го издания. Приятно удивитесь.
Есть еще такая вещь, как «Annotated Solution Guide for Thinking in Java», где сам же автор и разбирает все задачи. В том числе — и для четвертого издания.
Спасибо, удивился приятно! Добавлю информацию об упомянутых Вами книгах в статью.
Странно все-таки — почему в русскоязычном переводе все эти упражнения выбросили?
Раз уж сложилась такая ситуация, то буду переводить упражнения, опубликованные в оригинале, и размещать их после вопросов. Ответы на упражнения, наверное, приводить не стоит. Это будет просто дублирование книги
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. В нем есть такой кусочек:
Чтобы не возникало недоразумений, переформулирую пока вопрос следующим образом:
Приведенный мной ответ верен при вызове метода 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)
Цитата из оригинала книги на английском (стр. 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.»
А можно поподробнее про
Имеется в виду конструкция col.addAll(Arrays.asList(1, 2, 3))?
Если col у нас ArrayList, а добавляем мы к нему достаточно большой массив, то, на мой взгляд, System.arraycopy (см. ArrayList.addAll) будет гораздо быстрее чем цикл по всем элементам (см. Collections.addAll).
3. Какой метод добавления элементов в контейнер ArrayList является предпочтительным:
Arrays.asList или Collections.addAll и почему?
Имеется в виду конструкция col.addAll(Arrays.asList(1, 2, 3))?
Если col у нас ArrayList, а добавляем мы к нему достаточно большой массив, то, на мой взгляд, System.arraycopy (см. ArrayList.addAll) будет гораздо быстрее чем цикл по всем элементам (см. Collections.addAll).
Друзья! Пост обновлен! Добавлены часть вопросов и упражнений к главе 17. Оставшаяся часть будет опубликована позднее. Пожалуйста, пишите, если какие-то моменты и ответы у Вас вызывают сомнения. В случае их подтверждения текст будет поправлен, а Вы обязательно упомянуты
Случаем не допереводили оригинальные задания из английского издания?
Или, может быть, где-нибудь в другом месте есть переведенные задания?
Или, может быть, где-нибудь в другом месте есть переведенные задания?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Вопросы и задания для русскоязычной книги Thinking in Java (Философия Java) Брюса Эккеля