Java連載93-泛型實現Comparable、自定義泛型

1、泛型初步java

1.泛型是編譯階段的語法,在編譯階段統一集合中的類型。node

 

package com.bjpowernode.java_learning;

import java.util.*;

public class D93_1_GenercityInitial {

  public static void main(String[] args) {

    //建立一個List集合,只能存儲字符串類型

    List<String> strs = new ArrayList<String>();

    //添加元素

    strs.add("jodsf");

    strs.add("jodsffds");

    strs.add("jodsfsdf");

    strs.add("jodsfjhgfh");

    //遍歷

    Iterator<String> it = strs.iterator();

    while(it.hasNext()) {

      String s = it.next();

      System.out.println(s);

    }

   

    Map<String,Integer> maps = new HashMap<String,Integer>();

    //存儲

    maps.put("西瓜",10);

    maps.put("蘋果",10);

    maps.put("香蕉",20);

    //遍歷

    Set<String> keys = maps.keySet();

    Iterator<String> it2 = keys.iterator();

    while(it2.hasNext()) {

      String k = it2.next();

      Integer v =  maps.get(k);

      System.out.println(k+"----->"+v);

    }

  }

}

2、Comparable\定義泛型git

1.能夠使用泛型是實現Comparable比較類,能夠省去了強制轉換類型的麻煩github

2.自定義泛型​微信

 

package com.bjpowernode.java_learning;

import java.util.*;

​

public class D93_2_GenericityInitial {

  public static void main(String[] args) {

    SortedSet<Manager93> ss = new TreeSet<Manager93>();

    //添加

    Manager93 m1 = new Manager93(1000.0);

    Manager93 m2 = new Manager93(1500.0);

    Manager93 m3 = new Manager93(1300.0);

   

    ss.add(m1);

    ss.add(m2);

    ss.add(m3);

    //遍歷

    Iterator<Manager93> it = ss.iterator();//迭代器也要使用泛型,寫的時候忘了

    while(it.hasNext()) {

      Manager93 m = it.next();

      System.out.println(m);

    }

    System.out.println("=============");

    MyClass93<String> mc = new MyClass93<String>();

    //mc.m1(100);這個語句就報錯了,由於咱們上面指定了MyClass93類中存儲String類型;

    mc.m1("100");

  }

}

class Manager93 implements Comparable<Manager93>{//實現的Comparable也要使用泛型,用的時候也忘了

  double sal;

  Manager93(double sal){

    this.sal = sal;

  }

  public String toString() {

    return sal+"";

  }

  public int compareTo(Manager93 m) {

    double sal1 = this.sal;

    double sal2 = m.sal;//這裏使用了泛型不須要強制類型轉換了

    if(sal1>sal2) {

      return 1;

    }else if (sal1==sal2){

      return 0;

    }else {

      return -1;

    }

  }

}

//自定義泛型,這裏的T表明能夠指定任意類型

class MyClass93<T>{

  public void m1(T t) {

    System.out.println(t);

  }

}

3、源碼:學習

D93_1_GenercityInitial.java大數據

D93_2_GenericityInitial.javaui

https://github.com/ruigege66/Java/blob/master/D93_1_GenercityInitial.javathis

https://github.com/ruigege66/Java/blob/master/D93_2_GenericityInitial.javaspa

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客園:https://www.cnblogs.com/ruigege0000/

4.歡迎關注微信公衆號:傅里葉變換,我的公衆號,僅用於學習交流,後臺回覆」禮包「,獲取大數據學習資料

 

相關文章
相關標籤/搜索