泛型的小例子

在JDK文档中,有的类后面跟着一对<>这就表示这个地方可以用泛型的含义

两个小例子:

import java.util.*;
public class TestMap {
  public static void main(String args[]) {
    Map m1 = new HashMap(); 
    Map m2 = new TreeMap();
    //m1.put("one",new Integer(1));
    m1.put("one", 1);<span style="white-space:pre">					</span>//这个地方使用了自动打包
    //m1.put("two",new Integer(2));
    m1.put("two", 2);
    //m1.put("three",new Integer(3));
    m1.put("three", 3);
    //m2.put("A",new Integer(1));
   	m2.put("A", 1);
    //m2.put("B",new Integer(2));
    m2.put("B", 2);
    System.out.println(m1.size());
    System.out.println(m1.containsKey("one"));
    System.out.println
        //(m2.containsValue(new Integer(1)));
        (m2.containsValue(1));
    if(m1.containsKey("two")) {
      //int i = ((Integer)m1.get("two")).intValue();
      int i = (Integer)m1.get("two");
      System.out.println(i);
    }
    Map m3 = new HashMap(m1);
    m3.putAll(m2);
    System.out.println(m3);
  }
}
在上面这段程序中没有使用泛型,因此在后面需要对其进行强制转换,例如:int i = (Integer)m1.get("two");其实,意思就是传给Map的是Objects对象,下面对其进行改写:

import java.util.*;
public class TestMap2{
	public static void mian(String[] args) {
		Map<String,Integer> m1 = new TreeMap<String,Integer>();<span style="white-space:pre">	</span>//这个地方使用了泛型,不然的话,两个都是Objects对象
		Map<String,Integer> m2 = new HashMap<String,Integer>();<span style="white-space:pre">	</span>//使用泛型后,只能传进去<span style="font-family: Arial, Helvetica, sans-serif;"><String,Integer>类型对象,顺序不能变</span>

		m1.put("one",1);<span style="white-space:pre">				</span>//这个地方使用了自动打包技术
		//m1.put("one",new Integer(1));<span style="white-space:pre">			</span>//这个地方没有使用自动打包的话,放进去的是Integer对象,所以需要强制转换
		m1.put("two",2);
		//m1.put("two",new Integer(2));
		m1.put("three",3);
		 //m1.put("three",new Integer(3));
		m2.put("A",1);
		//m2.put("A",new Integer(1));
		m2.put("B",1);
		//m2.put("B",new Integer(2));
		
		System.out.println(m1.containsKey("one"));
		System.out.println(m2.containsValue(1));
		System.out.println(m1);
		System.out.println(m2);
		
		if(m1.containsKey("two")){
			//int i = ((Integer)m1.get("two")).intValue();
      <span style="white-space:pre">			</span>//int i = (Integer)m1.get("two");
      <span style="white-space:pre">			</span>int i = m1.get("two");<span style="white-space:pre">				</span>//这个地方便显示泛型的好处了,不用对其进行强制转换了
			}
			
		Map m3 = new HashMap(m1);
    <span style="white-space:pre">		m3.putAll(m2);
    		System.out.println(m3);</span>
	}	
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章