Лучший контейнер для строк: StringCollection, Collection < string & gt ;, List < string & gt ;, ArrayList, ..?

В зависимости от того, насколько распределена ваша проблема, решение из Python Guide (и в конечном счете из запросов источника ) может работать: попробуйте импортировать NullHandler и в except ImportError , определите класс следующим образом:

# Set default logging handler to avoid "No handler found" warnings.
import logging
try:  # Python 2.7+
    from logging import NullHandler
except ImportError:
    class NullHandler(logging.Handler):
        def emit(self, record):
            pass

logging.getLogger(__name__).addHandler(NullHandler())

Хотя, если вы используете пространство имен журналов, вы захотите вставить класс:

# in the except clause, after the class def:
logging.NullHandler = NullHandler

30
задан abatishchev 26 August 2011 в 07:51
поделиться

2 ответа

Поскольку то, в чем Вы нуждаетесь, List<string>, является, вероятно, самым универсальным. StringCollection было удобно в 1,1, когда (без дженериков) Вам были нужны определенные классы для введенных наборов. Collection<string> удобно, если Вы захотите разделить его на подклассы для обеспечения проверки и т.д.

Так или иначе, в 3,5, то LINQ обеспечит много дополнительных методов для них - но без LINQ, List<T> имеет больше функций (Find, Sort, и т.д.)

35
ответ дан Marc Gravell 26 August 2011 в 07:51
поделиться
  • 1
    I' d говорят, что хеширование файла, вероятно, будет I/O-bound во всяком случае, таким образом, Вы могли бы также использовать хеш с хорошим распределением и большим спектром (конечно, любой хеш crypto квалифицирует). – Steven Sudit 12 August 2010 в 12:40

List<T> было бы самым эффективным.

Collection<T> класс является просто оберткой для другого типа списка, конструктор без параметров инициализирует Collection<T> с List<T>.

ArrayList по существу то же как List<object>, таким образом, необходимо было бы бросить объекты к String при чтении из него.

А StringCollection является просто безопасной с точки зрения типов оберткой для ArrayList.

15
ответ дан Guffa 26 August 2011 в 07:51
поделиться
  • 1
    О, хорошо в этом случае просто используйте реальный хеш-алгоритм. Я гарантирую, что Ваша сеть будет медленнее, чем хеш. – Greg Hewgill 19 November 2009 в 18:01
Другие вопросы по тегам:

Похожие вопросы: