Парсинг целого стринга на различные аттрибуты(производительность)?
Так как с .НЕТ перешел на Java(по работе) не совсем знаком с эффективными медотами для работы с текстом. Суть заключается в том, что данные очень огромные, считывание идет из 5 огромных файлов, которые передаются в функцию целыми строками. Пусть это будет String data;
Такого типа: String data = "H 534624325 [3] 4234 32.5"
итд, как видно все разделенно простым пробелом. Сперва идет string, int, string, double
Т.е. все это надо передать в функцию someFunction(string, int, string, double) в разбитом состоянии.
напоминаю: Данные текут десятками гигабайт. На что лучше всего мне смотреть в этой ситуации? Подскажите подходящие функции, как более еффективно работать с такими вещами учитывая малейшие погрешности в производительности? Статьям тоже рад. Заранее спасибо :)
upd: наткнулся сейчас в поисках гугла на StringTokenizer, но опять же боюсь, что постоянная инициализация 5-10 аттрибутов и передача их в другую функцию будут не достаточно эффективной.
Ivan Sokolov: там не обходимо считывать 5 фаилов сразу еще и делать сортировки для этого всего месива)) Пока что я написал статичный класс, в который идет этот сплит через стрингтокенайзер и заполняет нужные поля. Ибо помимо просто обычного сплита, там еще и данные разные и основываясь на них надо делать тот или иной парс. Но пока еще по скорости не тестил. Это уже в понедельник...) Думаю просто с таким раскладом как обычный сплит, создаванием кучи аттрибутов и постоянными ифелсами на кучу листов будет плохим нерением, но его я тоже потещу... :) Я в функциях жавы очень слаб, синтаксис очень похож на с++, поэтому за день более менее привык. А вот тонкостей еще не знаю.
Ivan Sokolov: да, просто там фаилы разбиты, ибо так как они слишком огромные, рабоать с ними почти невозможно. Поэтому надо делать что-то по типу джоинов в SQLe только с фаилами. Показать к сожалению возможности нету. Но суть вопроса сводиться к пару строкам кода и это вот есть функция которая принимает параметр String data и в этой дате находится всего 1 строка из одного из многих фаилов, которая отправляется в разобранном виде в другую функцию, только там уже будет не жава.
P.S. Если честно то кажется, что Вы занимаетесь преждевременной оптимизацией. Обычно пишут самый простой/быстрый/очевидный вариант и проверяют как работает под нагрузкой, а уже потом при необходимости начинают его улучшать.
Rou1997: там в деле еще кафка и все продукты фирмы для биг дейты. Жава это как интерфейс между ними. Но это опять не имеет никакого отношнеия к вопросу.