求大神,java的集合框架是什么意思?

求解释的详细一点,通俗点。。。。。
2024-11-10 20:28:58
推荐回答(4个)
回答1:

Java平台提供了一个全新的集合框架。“集合框架”主要由一组用来操作对象的接口组成。不同接口描述一组不同数据类型。

Java 2集合框架图

  集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。

  抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。

  实现类:8个实现类(实线表示),对接口的具体实现。

  在很大程度上,一旦您理解了接口,您就理解了框架。虽然您总要创建接口特定的实现,但访问实际集合的方法应该限制在接口方法的使用上;因此,允许您更改基本的数据结构而不必改变其它代码。

  · Collection 接口是一组允许重复的对象。

  · Set 接口继承 Collection,但不允许重复,使用自己内部的一个排列机制。

  · List 接口继承 Collection,允许重复,以元素安插的次序来放置元素,不会重新排列。

  · Map接口是一组成对的键-值对象,即所持有的是key-value pairs。Map中不能有重复的key。拥有自己的内部排列机制。

  · 容器中的元素类型都为Object。从容器取得元素时,必须把它转换成原来的类型。

  Java 2简化集合框架图

集合接口

  1.Collection 接口

  用于表示任何对象或元素组。想要尽可能以常规方式处理一组元素时,就使用这一接口。

  (1) 单元素添加、删除操作:

   boolean add(Object o):将对象添加给集合

   boolean remove(Object o): 如果集合中有与o相匹配的对象,则删除对象o

  (2) 查询操作:

   int size() :返回当前集合中元素的数量

   boolean isEmpty() :判断集合中是否有任何元素

   boolean contains(Object o) :查找集合中是否含有对象o

   Iterator iterator() :返回一个迭代器,用来访问集合中的各个元素

  (3) 组操作 :作用于元素组或整个集合

   boolean containsAll(Collection c): 查找集合中是否含有集合c 中所有元素

   boolean addAll(Collection c) : 将集合c 中所有元素添加给该集合

   void clear(): 删除集合中所有元素

   void removeAll(Collection c) : 从集合中删除集合c 中的所有元素

   void retainAll(Collection c) : 从集合中删除集合c 中不包含的元素

  (4) Collection转换为Object数组 :

   Object[] toArray() :返回一个内含集合所有元素的array

   Object[] toArray(Object[] a) :返回一个内含集合所有元素的array。运行期返回的array和参数a的型别相同,需要转换为正确型别。

回答2:

    Java提供了数种持有对象的方式,包括语言内置的Array,还有就是utilities中提供的容器类(container classes),又称群集类(collection classes)。集合在java中非常重要,在讨论之前,先来看几个面试中的经典问题。 

    1 Collection 和 Collections的区别。 

    2 List, Set, Map是否继承自Collection接口。 

    3 ArrayList和Vector的区别。 

    4 HashMap和Hashtable的区别。 

篇尾有答案,我们开始正题。   

    集合Collection接口 

        --Collection 是任何对象组,元素各自独立,通常拥有相同的套用规则。Set List由它派生。

    基本操作  增加元素add(Object obj); addAll(Collection c); 

    删除元素 remove(Object obj); removeAll(Collection c); 

    求交集 retainAll(Collection c); 

    删除元素 remove(Object obj); removeAll(Collection c); 

    求交集 retainAll(Collection c); 

    访问/遍历集合元素的好办法是使用Iterator接口(迭代器用于取代Enumeration)

Public interface Iterator{
  Public Boolean hasNext(};
  Public Object next(};
 Public void remove(};
}

    集set 

        --没有重复项目的集合 

    有三种特定类型的集可用 

        HashSet-基于散列表的集,加进散列表的元素要实现hashCode()方法 

        LinkedHashSet-对集迭代时,按增加顺序返回元素 

        TreeSet-基于(平衡)树的数据结构   

        清单List 

        --位置性集合。加进清单的元素可以加在清单中特定位置或加到末尾 

有两个特定版本

    ArrayList(数组表)-类似于Vector,都用于缩放数组维护集合。区别:

        一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的 

        二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半 

    LinkedList(链表)-是双向链表,每个节点都有两个指针指向上一节点和下一节点。 

    用在FIFO,用addList()加入元素 removeFirst()删除元素

    用在FILO,用addFirst()/removeLast() 

    ListIterator提供双向遍历next() previous(),可删除、替换、增加元素 

    映射表Map 

    --用于关键字/数值对,像个Dictionary 

    处理Map的三种集合 

    关键字集KeySet() 

    数值集value() 

    项目集enrySet() 

    四个具体版本

    HashMap-散列表的通用映射表 

    LinkedHashMap-扩展HashMap,对返回集合迭代时,维护插入顺序 

    WeakHashMap-基于弱引用散列表的映射表,如果不保持映射表外的关键字的引用,则内存回收程序会回收它 

    TreeMap-基于平衡树的映射表   

    HashMap-散列表的通用映射表 

    LinkedHashMap-扩展HashMap,对返回集合迭代时,维护插入顺序 

    WeakHashMap-基于弱引用散列表的映射表,如果不保持映射表外的关键字的引用,则内存回收程序会回收它 

    TreeMap-基于平衡树的映射表 

    Collections类,用于同步集合,还能改变集合只读方式的类 

Map mp=new HashMap();
mp=Collections.synchronizedMap(mp); //生成线程安全的映射表
mp=Collections.unmodifiableMap(mp); //生成只读映射表

回答3:

就是你课本上学的那些队列啊, 栈啊, 链表啊, hash表, set, 这些所谓的集合, 数据的组织方式
java里有对应的实现好了的类, 你可以直接拿来用
java还提供了对集合的一些便利的操作方法, 比如说排序, 遍历等等

总之你不用再造一遍轮子了, 需要的时候拿来用
难道这就是框架

回答4:

框架是对某一类问题通用性的解决方案
java集合框架是对集合操作的通用性,共性处理方式/方法,进行总结基础上,写的代码,常用的有比如数组转换为集合,集合排序方法,复制等
可以参考java自带集合文档,也可以 看下百度百科 java集合框架介绍http://baike.baidu.com/link?url=SG0aQjqNSOAKBxTlNzH3rv5ka7SrjLz618z1hJ7KHBxpCpw4u818mHlCviStlgK8TGzHzmHnfN0moE7oVX4RiK