среда, 31 октября 2012 г.

HashSet и HashMap

Самые распространенные вопросы для собеседований можно собрать в группы. И одной из самых частых групп являются вопросы о Collection framework. Об одном из аспектов этого фреймворка мы сегодня и поговорим.

Говорить о классах Collections framework, как и о сортировке и поиске данных можно много, поэтому давайте организуем пост в виде вопросов и ответов. А вопросы постараемся задать такие же, как это делают интервьюеры.

вторник, 30 октября 2012 г.

[Tips] PatternSyntaxException: Unmatched closing ')'

Сегодня надо было мне разрезать строку, содержащую некоторые данные на составные части. Выглядела эта строка примерно так:
data(data)=(
    subdata1=1;
    subdata2 =...
)
data(data2)=(
   ...
   ну и так далее
   ....
)
Я, как умная Маша, сразу написал content.split("\n)\n");
и естественно получил ошибку, которая вынесена в заголовок. Дело в том, что в регэкспах скобка является ключевым символом и парсер, естественно, искал закрывающуюся скобку. А мне-то скобка была нужна именно как скобка! А вот фиг. попробовал ее заэскейпить бек-слешом. Не проходит. С точки зрения самой Java \) - это дурость какая-то. Но верный интернет быстро помог найти решение - надо поставить два бек-слеша. Так получается, что первый бекслеш эскейпит второй и в движок парсера отправляется уже скобка заэскейпленная вторым. Вот. Как-то путанно обьяснил, но, надеюсь понятно. В любом случае, вот так:
content.split("\n\\)\n");
работает. С чем я себя и поздравляю.

понедельник, 29 октября 2012 г.

Запоздалое вступление

Здравствуйте все.

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

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

Итак, сначала представляемся. Мы - семья. Та самая, анекдотическая семья программистов, причем пишем на одном и том же языке (внезапно, джава). В общем-то, это вполне предсказуемо - познакомились мы как раз на работе. Зовут нас Сергей (это как раз я) и Алена (она пишет под именем Эритака).  Работаем мы достаточно давно. Я, например, с 96-го года работаю программистом, а Алена - не так много, тем более, что у нас есть двое чудных деток, младшая как раз 2012 года рождения. так что супруга сидит дома в декрете, но по любимой работе скучает.

В общем-то, как раз следствием этого "скучания" и стал этот блог, где Алена записывает всякие мысли по ходу вспоминания аспектов, которые ей пригодятся потом, когда декрет кончится и она вернется к работе.

Я же, со своей стороны, являюсь по второй профессии java trainer, и вообще - очень люблю рассказывать людям о том, что знаю сам. Веду несколько курсов по базовой джава, по паттернам (GRASP, GoF, Enterprise), Agile методолгии (являюсь Sertified Scrum Master) ну и по всяким разным аспектам (рефакторинг, юнит-тестирование и т.д.).

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

Кстати, если кому интересно, у нас есть такой же семейный блог по ММО играм. Но это так, не важно.

В общем, что я хотел сказать - не бойтесь задавать самые новичковые вопросы, мы постараемся на них ответить и никого не будем посылать читать документацию, РТФМ, в смысле :). Спрашивайте, комментируйте. мы будем рады.