Java泛型

Posted Niro Einteson

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java泛型相关的知识,希望对你有一定的参考价值。

 

 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>

 

以上是关于Java泛型的主要内容,如果未能解决你的问题,请参考以下文章

201621123062《java程序设计》第九周作业总结

什么意思 在HashMap之前 ? Java中的泛型[重复]

这个嵌套类构造函数片段可以应用于泛型类吗?

201621123037 《Java程序设计》第9周学习总结

Java——泛型

作业09-集合与泛型