《将多个元素组成一个单元的对象》由会员分享,可在线阅读,更多相关《将多个元素组成一个单元的对象(42页珍藏版)》请在金锄头文库上搜索。
1、DYNAMIC DATA STRUCTURES,A data structure is a construct used to organize data in a specific way. So in this chapter we will:Become familiar with vectors and how they are used in Java. Learn what a linked data structure is and how it can be realized in Java.Find out how to manipulate linked listsLear
2、n what iterators are and how to create and use them,CHAPTER 10,简介,集合 将多个元素组成一个单元的对象 用于存储、检索、操纵和传输数据集合框架 提供用于管理对象集合的接口和类 包括接口、实现和算法,体系结构,用于操纵集合的接口,Collection接口,集合框架的根通用方法 boolean contains(Object a) boolean equals(Object a) Iterator iterator() int size() void clear() boolean add(Object a),Set接口,扩展Coll
3、ection接口不允许重复元素对 add()、equals() 和 hashcode() 方法添加了限制HashSet和TreeSet是Set的实现,SortedSet接口,扩展了Set接口元素按升序排序重要异常ClassCastException NullPointerException,List接口 2-1,具有顺序的集合扩展了Collection接口元素可以通过其整型下标访问可以包含重复元素,List接口 2-2,方法分类定位方法get()、set()、add()、remove()、addAll() 搜索方法indexOf() 和 lastIndexOf() ListIterator方法
4、listIterator() 和 subList(),Map接口,将键映射至值的对象 每个键最多都只能映射至一个值重要方法基本操作 put()、get()、remove()、containsKey()、containsValue()、size() 和 isEmpty() 批操作 putAll() 和 clear() 集合视图 keySet()、values() 和 entrySet(),实现 2-1,用于存储集合的实际数据对象重要集合类 AbstractCollection类提供Collection接口的框架实现 AbstractList 类提供 List 接口的框架实现 AbstractSe
5、quentialList 类是 List 接口的实现 LinkedList 类提供多个方法,用于在列表开始处和结尾 处获得、删除和插入元素,简介,集合 将多个元素组成一个单元的对象 用于存储、检索、操纵和传输数据集合框架 提供用于管理对象集合的接口和类 包括接口、实现和算法,体系结构,用于操纵集合的接口,Collection接口,集合框架的根通用方法 boolean contains(Object a) boolean equals(Object a) Iterator iterator() int size() void clear() boolean add(Object a),Set接口
6、,扩展Collection接口不允许重复元素对 add()、equals() 和 hashcode() 方法添加了限制HashSet和TreeSet是Set的实现,SortedSet接口,扩展了Set接口元素按升序排序重要异常ClassCastException NullPointerException,List接口 2-1,具有顺序的集合扩展了Collection接口元素可以通过其整型下标访问可以包含重复元素,List接口 2-2,方法分类定位方法get()、set()、add()、remove()、addAll() 搜索方法indexOf() 和 lastIndexOf() ListIte
7、rator方法listIterator() 和 subList(),Map接口,将键映射至值的对象 每个键最多都只能映射至一个值重要方法基本操作 put()、get()、remove()、containsKey()、containsValue()、size() 和 isEmpty() 批操作 putAll() 和 clear() 集合视图 keySet()、values() 和 entrySet(),实现 2-1,用于存储集合的实际数据对象重要集合类 AbstractCollection类提供Collection接口的框架实现 AbstractList 类提供 List 接口的框架实现 Abs
8、tractSequentialList 类是 List 接口的实现 LinkedList 类提供多个方法,用于在列表开始处和结尾 处获得、删除和插入元素,实现 2-2,重要集合类(续) ArrayList 类是 List 接口的可变大小数组实现 AbstractSet 类提供 Set 接口的框架实现 HashSet 类为基本操作提供固定时间性能 TreeSet 类确保排序集将按元素升序,example,import java.util.*;public class ListOper public static void main(String args) if(args.length=0) S
9、ystem.out.println(你必须提供列表元素,作为命令行参数。请重试!); System.exit(0); System.out.println(); List l=new ArrayList(); for(int i=0;iargs.length;i+) l.add(argsi); Collections.reverse(l); System.out.println(逆序的列表如下:); System.out.println(l); Collections.sort(l); System.out.println(排序的列表如下:); System.out.println(l); i
10、nt index=Collections.binarySearch(l,c); System.out.println(元素 “c”的位置为:+index); Collections.fill(l,一);,System.out.println(用字“一”填充后的列表如下:); System.out.println(l); List ll=new ArrayList(); ll.add(第一); ll.add(第二); ll.add(第三); Collections.copy(l,ll); System.out.println(用ll的元素替代后的列表如下:); System.out.printl
11、n(l); ,算法 3-1,Collections 类中的静态方法用于排序、搜索、混排和数据操纵方法的第一个参数是要执行操作的集合重要异常ClassCastExceptionUnsupportedOperationException,算法 3-2,算法 3-3,class AlgorithmExample public static void main(String args) LinkedList link = new LinkedList(); link.add(new Integer(10); link.add(new Integer(35); link.add(new Integer(
12、23); link.add(new Integer(54); link.add(new Integer(36); Comparator cmp = Collections.reverseOrder(); Collections.sort(link, cmp); Iterator it = link.iterator(); System.out.println(逆序排序的列表为: ); while (it.hasNext() System.out.println(it.next(); System.out.println(给定列表中的最大值为:+Collections.max(link); Sy
13、stem.out.println(给定列表中的最小值为:+Collections.min(link); ,多简单!,集合框架的优点,提供一组可用的集合接口提供有效的数据结构和算法可以方便地扩展或改写集合接口的实现都是可交换的使设计新 API 的工作降到最少接口和算法的可重用性,Vector类,实现可变长度的对象数组组件可以使用整型下标访问构造函数 Vector() Vector(Collection c) Vector(int cap) Vector(int cap,int inc),Enumeration接口:此接口定义了多个方法,有助于枚举对象集合中的元素。Boolean hasMoreE
14、lements()Object nextElement(),Enumeration e=v.elements();While(e.hasMoreElements() System.out.println(e.nextElement();,Method in vector,Public void setElementAt(object newElement, int index)Public object elementAt(int index)Public void addElement(object newElement)Public void insertElementAt(object
15、newElement,int index)Public void removeElementAt(int index)Public boolean removeElement(Object theElement),Public void removeAllElements()Public boolean contains(Object target)Public int indexOf(Object target)Public int indexOf(Object target, int startIndex)Public int lastIndexOf(Object target)Public Object firstElement()Public Object lastElement()Public boolearn isEmpty(),