首页>总结报告>集合方法总结(推荐6篇)

集合方法总结(推荐6篇)

时间:2024-03-13 10:34:11 总结报告

集合方法总结 第1篇

      Collections还提供了多个线程安全锁synchronoizedXxx()方法,该方法可以将指定的集合包装成线程同步的集合,从而解决多线程的并发访问集合中的线程安全问题。

例如:

集合方法总结 第2篇

      集合、数组都是对多个数据结构进行存储操作的结构,简称Java容器。但是随着数据量的增大,数组越来越不能满足现代的开发要求。比如数组初始化以后,长度就确定了,不便于扩展;数组声明的时候,就决定了元素初始化的类型且添加、删除操作效率低下。 Java集合可以看做一个容器,比较灵活,可以动态的把多个对象xxx容器中。Java集合可以存储数量不等的多个对象,还可以保存具有映射关系的关联数组。

     Java集合可以分为CollectionMap两种体系

     ①Collection接口:单列数据,定义了存储一组对象方法的集合。 包含了以下子接口。

           <1>List接口:存储有序的,可以重复的数据,实现类有ArrayList,LinkedList,Vector

           <2>Set接口:存储无序的,不可重复的数据,实现类有HashSet,LinkedHashSet,TreeSet

      ②Map接口:双列集合,用来存储一对一对的数据,键值对(key—value)存储

           其中包含了Map接口的实现类有:HashMap,LinkedHashMap,TreeMap,HashTable,Properties

      Collection集合框架图如下:虚线是实现关系,实线是继承关系

       Map集合框架图如下:虚线实现关系,实线是继承关系

集合方法总结 第3篇

注:以下是高中常用的集合(需要背)

-------------------------------------------------------------------------------

例题3:

-------------------------------------------------------------------------------

变式训练3

A 0

B 1

C -1

D 0或1

答案:B

-------------------------------------------------------------------------------

集合方法总结 第4篇

方式一:Iterator迭代器接口

注意:Iterator对象称为迭代器,主要用于遍历Collection集合中的元素。

设计模式中有种模式叫做迭代器模式,用于提供一种方法访问一个容器对象中的元素,又不暴露该对象中的内部细节。迭代器模式因此而生。 

Collection接口继承了接口,该接口有一个iterator()方法,那么所有实现Collection接口的集合类都有一个iterator()方法,返回一个Iterater的接口对象。集合对象每次调用iterator()方法都得到一个全新的迭代器对象,xxx标在第一个元素之前。

Iterator接口中的方法:

① hasNext():判断是否还有下一个元素

② next():指针下移;并且将下移以后集合位置上的元素返回

③ remove():删除集合中的元素

Iterator的执行原理:

     开始遍历集合的时候,默认next()指向的集合第一个元素之前的位置,hasNext()方法判断集合中是否有下一个元素。如果有下一个元素,next()方法指针下移,并将下移集合位置上的元素进行返回。直到while(())为false;迭代过程如下图所示。

注意:Iterator可以删除集合的元素,但是遍历过程中可以通过迭代器对象的remove方法,而不是集合对象的remove方法。

remove方法代码示例:

方式二:for循环遍历,增强for循环实现集合的遍历

集合方法总结 第5篇

我们可以用自然语言来描述一个集合,但这将给我们带来很多不便,除此之外还常用列举法和描述法来表示集合.

1. 自然语言法:用文字叙述的形式描述集合的方法.如:大于等于2且小于等于8的偶数构成的集合.

2. 列举法:把集合中的元素一一列举出来,写在大括号内.如:

3.描述法:把集合中的元素的公共属性描述出来,写在大括号{ }内.具体方法:在大括号内先写上表示这个集合元素的一般符号及取值(或变化)范围,再画一条竖线,在竖线后写出这个集合中元素所具有的共同特征.

4.图示法:图示法主要包括Venn图、数轴上的区间等.为了形象直观,我们常常画一条封闭的曲线,用它的内部来表示一个集合,这种表示集合的方法称为xxx(Venn)图法. 如下图,就表示集合.

集合方法总结 第6篇

      Set接口是Collection接口的子接口,类比List接口,Set接口是无序的,不可重复的。Set对象判断两个对象是否相同使用的方法是equals方法。

① HashSet:

      HashSet底层是   数组 + 链表   形式,底层其实是HashMap

      HashSet是Set接口的典型实现,大多数时候使用Set集合时,都使用的是这个类。HashSet按照Hash算法来存储集合中的元素,因此具有很好的存取、查找、删除的性能。

      HashSet具有以下特点:不能保证元素的顺序排列,HashSet不是线程安全的,集合元素可以是null

HashSet集合判断两个元素相等的标准,两个对象通过hashCode()方法比较相等,并且两个对象的equals方法的返回值相等。

     存放Set容器中的对象,对应的类一定要重写equals方法和hashCode(Object obj)方法,以实现对象的相等规则,即:相等的对象一定有相等的散列码。

     关于equals和hashCode方法的重写,具体请访问 :其实HashSet底层是HashMap,包括equals和hashCode方法的重写。

② LinkedHashSet:

     LinkedHashSet是HashSet的子类,LinkedHashSet根据元素的hashCode值来存储元素的存储位置,但他同时使用双向链表维护元素的次序,使元素插入的时候看起来有序。LinkedHashSet插入的性能低于HashSet,LinkedHashSet不允许元素重复。

③ TreeSet:

  TreeSet是SortedSet接口的实现类,TreeSet可以确保元素集合处于排序状态,TreeSet的底层使用的是红黑树存储结构。红黑树有两种排序方式,自然排序和定制排序。也就是使用Comparable接口和Comparator接口,具体请访问:

(1)HashSet底层源码分析:添加元素的过程

  向HashSet集合中添加元素a,首先调用元素a所在类的hashCode方法,计算元素的哈希值,通过计算元素的哈希值确定元素在HashSet底层数组中存放的位置(索引位置)。首先判断数组此位置上是否已经有了元素:

      ① 如果此位置上没有其他元素,那么就添加成功。

      ② 如果此位置上有其他元素(或者以链表形式存在的多个元素),则首先比较元素a和元素b的哈希值:

            <1>如果元素a的哈希值不相同,则元素a添加成功

            <2>如果元素的哈希值相同,进而需要调用元素a所在类的equals方法

                    (1)equals()方法返回true,元素a添加失败,说明元素的内容是否相同

                    (2)equals()方法返回false,元素添加成功,说明元素的内容是不一样的,说明添加成功。

(2)LinkedHashSet底层源码分析:添加元素的过程

   LinkedHashSet添加元素的时候,使用的是双向链表。添加元素的位置是不确定的,但是添加元素的顺序是确定的。

(3)TreeSet底层源码分析:添加元素的过程

  向TreeSet集合汇总添加数据,要求的是相同类的对象。其中两种排序方式:自然排序和定制排序。 

  在自然排序中,比较两个对象是否相同的标准是compareTo()返回0,不再是equals()比较   。

  在定制排序中,比较两个对象是否相同的标准是,compare()返回值为0,不再是equals()比较

  红黑树就是二叉树,其中二叉树满足的条件是:当前节点始终比左节点的值大,始终比右孩子的值大。

小结:

Set接口:存储无序的,不可重复的元素

   HashSet:底层是HashMap实现的。作为Set接口的主要实现类,线程是不安全的,可以存储null值

       LinkedHashSet:底层是链表结构。作为HashSet的子类,遍历其内部数据的时候,可以按照添加顺序遍历

   TreeSet:底层是红黑树结构,按照对象的指定属性进行排序。比如Person类中属性有id,name;通过实现Comparable接口进行排序

在向Set中添加元素的时候,其所在的类一定要重写hashCode()方法和equals()方法。重写hashCode()和equals()方法尽可能的保持一致性,相等的对象一定要有相等的散列码。