zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    3 * 0.1 == 0.3 将会返回什么?true 还是 false?
    Java中存储金额用什么数据类型?
    oracle数据库中索引失效的几种情况
    MyBatis如何防止SQL注入
    Windows10连接到内网(局域网)段
    Linux上安装Tomcat并启动时报Cannot find /usr/local/tomcat/tomcat_8080/bin/setclasspath.sh
    Linux上安装Mysql
    Linux上安装JDK
    FileZilla的使用和注意事项
    Failure to find parent:pom:2.2.6 in http://maven.aliyun was cached in the local repository...
  • 原文地址:https://www.cnblogs.com/NirobertEinteson/p/12030590.html
Copyright © 2011-2022 走看看