java中集合框架的需求是什么?

Jav*_*ser 6 java collections

Java中的Collection框架需要什么,因为所有数据操作(排序/添加/删除)都可以使用Arrays,而且数组适合于内存消耗,并且与Collections相比性能也更好.

任何人都可以指出一个实时的数据导向示例,它显示了这些实现的两个(数组/集合)的差异.

Chr*_*ung 27

  • 数组不可调整大小.
  • Java Collections Framework提供了许多不同的有用数据类型,例如链表(允许在恒定时间内的任何地方插入),可调整大小的数组列表(如Vector冷却器),红黑树,基于散列的映射(如Hashtable冷却器).
  • Java Collections Framework提供了抽象,因此您可以将列表称为a List,无论是由数组列表还是链接列表支持; 并且您可以将地图/字典称为a Map,无论是由红黑树还是哈希表支持.

换句话说,Java Collections Framework允许您使用正确的数据结构,因为一个大小并不适合所有.

  • @Adeel:如果我没有在西方尝试最快的枪,我可能会更多地改进它(讨论何时使用哪个,Google Collections等).:-P (3认同)
  • +1绝对是一个更好的答案.我删除了那些笨拙的我. (2认同)

Ita*_*man 6

几个原因:

  • Java的集合类提供了比数组更高级别的接口.
  • 数组具有固定大小.集合(请参阅ArrayList)具有灵活的大小.
  • 在原始阵列之上有效地实现复杂的数据结构(例如,散列表)是一项艰巨的任务.标准的HashMap免费提供.
  • 对于同一组服务,您可以选择不同的实现:ArrayList与LinkedList,HashMap与TreeMap,同步等.
  • 最后,数组允许协方差:由于输入错误只能在运行时检测到,因此无法保证设置数组元素.泛型可以防止数组中出现此问题.

看看这个说明协方差问题的片段:

  String[] strings = new String[10];
  Object[] objects = strings;

  objects[0] = new Date();  // <- ArrayStoreException: java.util.Date
Run Code Online (Sandbox Code Playgroud)