Почему JTable в Java Swing использует Vector в качестве параметров конструктора?

Кто-нибудь знает почему JTable в Java Swing используйте Vector в качестве параметров конструктора: like JTable(Vector rowData, Vector columnNames), хотя Vector помечен как устаревшая коллекция. (Я знаю, что есть и другие варианты, но использовать Vector намного удобнее). Есть ли что-нибудь связанное с синхронизацией потоков?

1 ответ

Решение

В то время как Vector не устарел и не устарел, это наследие оригинала DefaultTableModel; позже он был "переоборудован для реализации List интерфейс." Vector синхронизируется, но его правильное использование для этой функции эффективно зависит от деталей реализации. Вместо этого используйте свойства согласованности памяти классов, чьи методы обеспечивают отношение " происходит до". Например, SwingWorker, который реализует Future<T> а также RunnableFuture<T>, особенно удобно для надежного обновления модели таблицы в потоке диспетчеризации событий. Это устраняет необходимость избыточной синхронизации внутренней структуры данных модели.

Другие вопросы по тегам