复习——队列 || 总结——集合框架


复习——队列
总结——集合框架


1)自定义队列: 自定义队列是线性数据结构

队列:
      1、队列可以像数组一样有序存放对象,但它的长度不是固定的,可以自动增长。
      2、队列要借助于数组和引用传递来实现。
      3、自定义队列是用类来操作数组的,将所有的操作用类封装起来,在类外是无法看到具体操作的。

1.为什么要使用队列
因为数组的大小是固定的,所以是用来队列实现实现数据的存储。
队列简单的讲就是将一个数组用类封装起来,在类中定义不同的方法,这些方法就是针对数组操作的方法,可以用来改变数组的大小。
数组长度是固定的,无法直接操作内存,所以定义了一个类,让类封装了对数组的增删改查的操作。
2.队列的实现
1.定义一个队列的接口,在接口中定义需要操作数组的方法。
2.定义一个类,实现接口并实现接口中所有的方法。
3.在main函数中实例化自定义队列类的对象,并且给对象添加元素,删除,修改,查找等。
3.通用自定义队列
要使用通用的自定义队列要用到两个知识点:
1.泛型     E
2.所有类的父类    Object
  
   
   
2)java的集合框架

Collection是Set,List,Queue的顶层接口。
不是Map的!

1.Set
接口 Set<E>
类型参数:
E - 此 set 所维护元素的类型

Set是一个接口的定义,已知实现子类有:
Collection, List, SortedSet, HashSet, TreeSet, AbstractSet, Collections.singleton(java.lang.Object), Collections.EMPTY_SET
常用的子类有:HashSet  和  TreeSet。

特点:
1>无序的
2>不能有重复的数据(地址)
3>不能使用索引来获取数据
4>如果获取数据,必须使用迭代器

2.List
List<E>
类型参数:
E - 此 set 所维护元素的类型

有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
List 接口在 iterator、add、remove、equals 和 hashCode 方法的协定上加了一些其他约定,超过了 Collection 接口中指定的约定。为方便起见,
这里也包括了其他继承方法的声明。

特点:
1>有序的,先进先出
2>操作方法类似
3>是使用数组来实现的

3.Map   
接口 Map<K,V>
类型参数:
K - 此映射所维护的键的类型
V - 映射值的类型

一一对应的映射,每个对象和它的一个键关联在一起。
Map中存放的两种对象: key(键) 和    value(值),一一对应。

已知实现子类:
AbstractMap, Attributes, AuthProvider, ConcurrentHashMap, ConcurrentSkipListMap, EnumMap, HashMap, Hashtable, IdentityHashMap,
LinkedHashMap, PrinterStateReasons, Properties, Provider, RenderingHints, SimpleBindings, TabularDataSupport, TreeMap,
UIDefaults, WeakHashMap
常用的子类:HashMap  和    Hashtable。


特点:
1>键值对方式存储数据
2>只要键不同,那么值是可以相同的(键不能重复,但只可以重复!)
   
    4.Queue(队列)
   
   
   
   

猜你喜欢

转载自hsm-java.iteye.com/blog/1134856
今日推荐