JAVA学习笔记整理六(类集框架)

原创 2016年05月31日 10:58:26

类集框架接口的具体特点




接口的继承关系



集合框架中的实现类

Collection接口

1.    此接口是单值存放的最大父类接口,可以向其中保存多个单值(单个的对象)数据,一般不直接使用,因为表示的操作意义不明确。

2.    使用了泛型的定义,在操作时必须指定具体的操作类型,以保证类集操作的安全性,避免发生ClassCastException异常

List接口

1.     ArrayList


2.     LinkedList:


3.     区别

    1)  我们可以将ArrayList看作是能够自动增长容量的数组,可以直接利用ArrayList的toArray()返回一个数组

    2)  ArrayList底层采用数组完成,而LinkedList则是以一般的双向链表(double-linked list)完成,其内每个对象除了数据本身外,还有两个引用,分别指向前一个元素和后一个元素

    3)  LinkedList在实现List接口的同时,还实现了Queue接口,采用“先进先出”的方式操作

   4) 如果我们经常在List的开始处增加元素,或者在List中进行插入和删除操作,我们应该使用LinkedList,否则的话,使用ArrayList将更加快速

Set接口

Set接口不能增加重复元素,实例无法像List接口那样可以进行双向输出。

1.     HashSet:散列的存放:不能存放重复元素,并且采用散列的存储方式,无序排列

2.     TreeSet:有序的存放:不能存放重复元素,有序排列,可以自定义类进行去重复并按照自己规定的顺序进行排序

3.     TreeSet实现了SorteSet接口(是 SorteMap 的 set 对应接口)

集合的输出

1.     迭代输出 Iterator(最常使用):是专门的迭代输出接口,由前向后单向输出。所谓的迭代输出接口就是将元素一个个进行判断,判断其是否有内容,如果有内容则把内容取走

2.     双向迭代输出Listlterator:可以实现由后向前或者由前向后的双向输出(只有List接口才可以实现),若想要后向前输出,必须先完成由前向后的输出

3.     Foreach:增强型循环


Map:

Collection、Set、List接口都属于单值的操作,每次只能操作一个对象,而Map每次操作的是一对对象,Map的每个元素都用key→value的形式存储在集合中

1.     Map.Entry接口简介:是Map内部定义的一个接口,专门用来保存key→value的内容(实际上是将key→value的数据保存在Map.Entry的实例后,再在Map集合中插入一个个的Map.Entry的实例化对象)


2.     HashMap:无序存放,新的操作类,key不允许重复

3.     HashTable:无序存放,旧的操作类,key不允许重复(除了Hashtable可以同步和不允许使用null之外, Hashtable与HashMap类大致相同)


4.    TreeMap:可以排序的Map集合,按集合中的key排序,key不允许重复(一般使用的String类作为key,而String类已经实现了Comparable接口,所以不用再特意实现,而如果使用自定义的类作为key,则必须实现Comparable接口,否则会出现异常)

5.     WeekHashMap:弱引用,之前的子类都是强引用保存,即里面的内容不管是否使用都始终在集合里,而WeekHashMap则当利用“System.gc()”进行垃圾收集时,集合会自动清理暂时不用的数据


6.     Key可以重复的Map集合:IdentityHashMap

        只要key地址不是相等的,就可以添加进去而不被覆盖

Map接口使用的注意事项

1.     不能直接使用迭代输出Map中的全部内容(Map一般很少直接输出,只是作为查询使用,而Collection接口一般用来传递内容和输出)

   1)    使用Iterator输出(最标准的操作流程)

1>  将Map的实例通过entrySet方法变为Set接口对象

2>  通过Set接口实例化为Iterator实例化

3>  通过Iterator迭代输出,每个内容都是Map.Entry的对象

4>  通过Map.Entry进行key→value的分离

   2)    Foreach输出(将Map集合变为Set集合进行输出)


2.     直接使用非系统的类作为key

        如果使用的自定义的类表示Map中的value,则按照格式完成即可,但是,如果要使用一个自定义的对象表示Map中的key,则对象所在的类中一定要覆写equals()和hashCode()方法,否则无法找到对应的value(类似于treeSet处,需要一一进行比较)

其他集合类

1.     Stack类:栈,先进后出。

2.     属性类:Properties




版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

JAVA学习笔记13:IO&类集

完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部的信息保存在文件中,可以实现对学生信息的学号查找、输出全部学生信息的功能。

14. JAVA 枚举(Enum、类集EnumMap&EnumSet 、实现接口、定义抽象方法) ----- 学习笔记

本章目标: 1

13. Java类集 Part 2(Map接口、SortedMap接口、集合工具类Collection、Stack类、属性类Properties) ----- 学习笔记

13.7  Map接口       13.7.1

专题笔记--Java 类集框架

Java 类集框架1. Java类集框架产生的原因        在基础的应用中,我们可以通过数组来保存一组对象或者基本数据,但数组的大小是不可更改的,因此出于灵活性的考虑和对空间价值的担忧,我们可以...

Java基础知识学习四(类集框架)

主要包括 一、Collection  :List (ArrayList,LinkedList)、 Set (HashSet,TreeSet)  输出 二、Map:HashMap,TreeMap 三、...

13. Java类集 Part 1(类集、Collection接口、List接口、Set接口、SortedSet接口、集合的输出) ----- 学习笔记

本章目标:

第16章 Java类集框架

  • 2012-08-31 05:47
  • 174KB
  • 下载

Java类集学习(六)应用范例(一对多的关系)

使用类集可以表示出以下关系:一个学校可以包含多个学生,一个学生属于一个学校。这是一个典型的一对多的关系。 学生含有的属性:姓名,年龄,对应的学校; 学校的属性:学校名称,对应的学生集合。 分析存...

java基础---类集框架三

学习笔记 -  泛型   一、泛型简介   *ClassCastException 类型转换异常   *   *泛型,JKD1.5版本以后出现的新特性。用于解决安全问题,是一个安全机制。   *好处 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)