Java泛型
1 泛型: 2 泛型类:声明一个类 3 class 名字<泛型列表> 4 如: 5 class People<E> { 6 E是泛型,没有指定E的类型 7 E可以是 任何对象 或 接口 ,但是不能是基本类型 8 E是自定的名字 9 public People(E e){ 10 ... 11 } 12 } 13 14 15 使用 泛型类声明对象: 16 People<Stone> people=new People<Stone>(new Stone()); 17 18 泛型接口: 19 interface 名称<泛型列表> 20 如: 21 interface Computer<E> 22 interface Computer<E,F>//多个参数 E,F,.. 23 24 链表: 25 数组在使用前 必须定义元素的个数:即数组的大小 26 如果改变 数组的大小,那么就会放弃原有的单元 27 动态增加或减少数据时:采用链表 28 29 LinkedList<E> 泛型类 30 实现了 泛型接口List<E> 31 而泛型接口List<E>时Collection<E> 泛型接口的子接口 32 LinkedList<E>的方法 大都是泛型接口 的方法 33 常用方法: 34 public boolean add(E element);//先链表末尾添加一个新的节点 35 public void add(int index,E e);//向链表的指定位置,添加一个 新的节点 36 public void clear();//删除链表的所有节点 37 public E remove(int index);//删除指定位置上的 节点 38 public boolean remove(E e);//删除 首次出现e的界定啊 39 public E get(int index);//得到index 节点的数据 40 public int indexOf(E e);//返回e首次出现的位置,无则返回-1 41 public int lastIndexOf(E e);////返回e最后出现的位置,无则返回-1 42 public E set(int index,E e);//将index位置的数据替换为e 43 public int size();//返回链表长度 44 public boolean contians(Object e);//判断链表节点是否有数据e 45 public void addFirst(E e);//在链表的头添加新的节点 46 public void addLast(E e);//在链表的末尾添加新结点 47 public E getFirst();//得到链表的第一个节点的数据 48 public E getLast();//得到链表的最后一个节数据 49 public E removeFirst();//删除第一个 节点的数据 50 public E removeLast();//删除 最后一个节点的数据 51 public Object clone();//获取当前列表的一个克隆 列表 52 53 遍历链表: 54 迭代器: 55 链表对象list:用iterator()方法获取一个Iterator对象,这个对对象 针对当前列表 56 Iterator<String> iter=list.iterator();// 57 while(iter.hasNext()){ 58 String str=iter.next(); 59 } 60 61 java.util包中 62 创建空链表 63 LinkedList<String> mylist=new LinkedList<String>(); 64 mylist.add("hello");//添加数据 65 66 动态数组 ArrayList 67 采用顺序结构,不适合动态的增加,删除 68 ArrayList和LinkedList 方法很类似 69 本质区别时是:ArrayList ->顺序结构 70 LinkedList ->链式结构 71 72 73 堆栈: 74 Stack<E> 75 public E push(E item);//实现压栈 76 public E pop();//实现弹栈操作 77 public boolean empty();//判断栈是否还有数据;有 false,无true 78 public E peek();//获取栈顶的数据,但是不删除该数据 79 public int search(Object data);//获取数据在对战中的位置,最顶端是1,向下递增,没有返回-1 80 81 散列映射: 82 HashMap<K,V>泛型类 83 HashMap<K,V>泛型类实现了泛型接口 Map<K,V>; 84 HashMap<K,V>泛型类中的大部分方法都是 Map<K,V>接口方法的实现 85 可以采用接口回调技术, 86 将HashMap<K,V>对象的引用 赋值给 Map<K,V> 接口变量 87 map接口遍历就可以调用实现类的接口方法 88 89 90 键值对: 91 HashMap<String,Student> hashtable=HashSet<String,Student>(); 92 93 public void clear();清空散列映射 94 public V put(K key,V value);//将键值对数据存放到 散列映射中,返回 键key对象的值value 95 public Object clone();//返回当前散列映射的一个克隆 96 public boolean containsKey(Object key);//是否包含 key -有true,无false 97 public boolean containsValue(Object value);//是否包含 值value -有true,无false 98 public V get(Object key);//返回 键 key 对应value 99 public boolean isEmpty();//是否还有键值对 有 false,无true 100 public V remove(Object key);// 删除散列映射中参数只当键值对,并返回 value 101 public int size();//返回 散列映射的大小 102 103 public Collection<V> values();//返回一个实现Collection<V>接口类创建的对象,使用接口回调技术, 104 将对象的引用,赋给Collection<V>接口变量 ,接口变量调用iterator方法获取一个Iterator对象 105 iterator对象存放着 所有的键值对中的值 106 107 108 树集TreeSet<E> 109 树映射TreeMap<K,V>