为什么他们只居住在java.util,而不是像java.collections或java.util.collections这样更专业的地方呢?
它可能会导致不同的无关代码的混乱。不是吗?它是出于与JCF外部在包级别上的沟通而做出的决定,还是一个历史性的遗留问题?
发布于 2015-09-09 01:20:29
假设的话,我们可以为所有属于java.util.collections的新集合创建集合框架,但问题是,在它们之前存在一些集合类。
特别是,java.util.Dictionary (javadoc)应该在一个单独的包中,而不是java.util.Map (javadoc)。类似地,您有Hashtable和HashMap。java.util.Vector (javadoc)现在实现了java.util.List (javadoc)。
显然,将Vector和Hashtable迁移到新包是不可能的,在新包中复制代码或对其中任何一个进行子类都会带来更大的麻烦(我甚至不想考虑会造成的混乱)。
当您查看java.util封装时,您将看到它主要是包含一些其他实用工具类的集合。
因此,尝试将新类放在不同的包中没有多大意义。
包含集合框架、遗留集合类、事件模型、日期和时间设施、国际化和杂项实用工具类(字符串标记器、随机数生成器和位数组)。
java.util继续收集框架。这首先也是最重要的。唯一在不同包中的集合是java.util.concurrent所使用的集合,它专注于并发性。这些仍然被认为是集合框架的一部分。来自java.util.concurrent.ConcurrentNavigableMap:
public interface ConcurrentNavigableMap<K,V>extends ConcurrentMap<K,V>, NavigableMap<K,V>是支持NavigableMap操作的ConcurrentMap,因此对于其可导航的子maps.,该接口是Java框架的一个成员。自: 1.6
https://softwareengineering.stackexchange.com/questions/295153
复制相似问题