泛型
? ??(1)泛型目的:建立有类型安全的集合框架,如链表,散列映射等 ? ??(2)泛型声明:使用“class名称<泛型列表>”声明一个类,这样声明的类称为泛型类,如: class Peope<E> ? ??(Peole是泛型类的名称,E是其中的泛型) ? ??(3)泛型类声明对象:泛型类声明和创建对象时,类名后多了一对“<>”,而且必须 要用具体的类型替换"<>”中的泛型,如: ? ??Cone<?Circle?> coneOne ; ? ??coneOne=?new?Cone<Circle >(new? Circle ()); ? ??(4)泛型优点:泛型的目的是建立具有类型安全的数据结构,如链表.散列表等数据结构,最重要的一个优点:在使用这些泛型类建立的数据结构时,不必进行强制类型转换,即不要求进行运行时类型检查
链表
? ??(1)链表:LinkedList<E>泛型类创建的对象以链表结构存储数据,链表是由若干个称做结点的对象组成的一种数据结构,每个结点含有一个数据以上一个结点的引用和下一个结点的引用。 ? ??创建一个空双链表:?LinkedList<String> mylist=new?LinkedList<String>();
? ?注:ArrayList即顺序结构的动态数组表,采用顺序结构存储数据。而ArrayList与LinkedList类似,二者区别在一个使用顺序结构,一个使用链式结构。数组表不适合动态地改变它存储的数据,如增加,删除单元等(比链表慢),但由于数组采用顺序结构存储教据,数组表获得第n个单元数据比链表获得第n个单元数据的速度快。 ? ??(2)collections类提供的顺序与查找类方法: ? ??public?static?sort (List<E>?list)该方法可以将list中的元素按升序排列. ? ? int binarySearch?(List<T>?list,?T key,?CompareTo<T>c)使用折半法查找list是否含有和参数key相等的元素,如果key与链表中某个元素相等,方法返回和key相等的元素在链表中索引位置(链表的索引位置从0开始).否则返回-1?
堆栈
? ??(1) Stack<E>泛型类创建一个堆栈对象,堆栈把第一个放入该堆栈的数据放在最底下,而把后续放入的数据放在已有数据的顶上,堆栈总是在顶端进行数据的输入输出操作。故堆栈是一种"后进先出"的数据结构,只能在一端进行输入或输出数据的操作 ? ??(2) 向堆栈输入数据(压栈):public E?push?(E?item); ? ??向堆栈输出数据(弹栈):?public E?pop(): ? ??判断堆栈是否有数据,有返回false,无返回ture: public E peek();
散列映射
? ??(1)HashMap<K,V>泛型类创建散列映射,散列映射采用散列表结构存储数据,用于存储键/值数据对,允许把任何数量的键/值数据对存储在一起。使用散列映射来存储经常需要检索的数据,可以减少检索的开销。 ? ??(2) 常用方法:
- ? ??public void?clear(): 清空散列映射
- ? ??public?Object clone(): 返回当前散列映的一个克隆;
- ? ??public boolean?containsKey(Object?key): 如果散列映射有键/值对使用了参数指定的键,方法返回true,否则返回flse.
- ? ??public boolean?containsValue(Object?value): 如果散列映射有键/值对的值是参数指定的值,方法返回true,否则返回false.
- ? ??public?V?get(Object?key): 返回散列映射中使用key做键的键/值对中的值。
- ? ??public?boolean?isEmpty(): 如果散列映射不含任何、键/值对,方法返回true,?否则返回false。
- ? ??public?V?remove(Object?key): 刪除散列映射中键为参数指定的键值对,并返回键对应的值
- ? ??public?int?size(): 返回散列映射的大小,即散列映射中键/值对的数目
? ??(3)遍历散列映射:?public Collection<V>?values()方法,返回一个实现 Collection<V>接口类创建的对象.可以使用接口回调技术,即将该对象的引用赋值给Collection<V>接口变量,该接口变量可以回调iterator()方法获取一个Iterator对象,这个iterator对象存放散列映射中所有键/值对中的值
树集
? ? ?TreeSet<E>类创建树集,树集结点的排列和链表不同,不按添加的先后顺序接列,当一个树集中的数据是实现Comparable接口类创建的对象时,结点就按对象的大小关系升序排列。树集用add方法添加结点,结点会按其存放的数据的”大小”顺序一层一层地依次排序,在同一层中的结点从左到右按”大小”顺序递增排列,下一层都比上一层小
数映射
? ? ?TreeMap<K,V>类创建树映射,?树映射的结点存储键/值对,和树集不同的是,树映射保证结点是按照结点中的键升序排列。?TreeMap<K,V>类实现了Map<K,V>接口,称TreeMap<K,V>对象为树映射。树映射使用public V put(K keg,V?value)方法添加结点,该结点不仅存储数据value,也存储和其关联的关键字keg,也就是说树映射结点存储关键字/值对。
|