5.11 泛型Generic ,Map接口

Posted syx1997

tags:

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

容器(Collection)
  泛型(Generic)(JDK1.5之后才有泛型)
    1, 装入集合的类型都被当作Object对待, 从而失去了自己的实际类型
    2, 集合中秋出来的时候需要转型, 效率低, 易出错

    好处: 增强程序的可读性和稳定性

    注意: <>中定义的类型一定是引用类型 !!!

泛型写法

import java.util.ArrayList;
import java.util.List;

public class Test2 {

       public static void main(String[] args) {
	     List<Book> list = new ArrayList<Book>();   //< >里写什么,方法跟着一块变
	     list.add(new Book());
     }
}

Map 接口 :< >必须存两个类型 

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Test2 {

	public static void main(String[] args) {
				
	     Map<String,String> map = new HashMap<String, Object>();
             //必须传两个类
	     Map<String, Object> map = new HashMap<String, Object>();
             //Object是传什么类型都可以          
  
	      map.put("a", "小明");             
	      map.put("b", new Book());
              System.out.println(map);    //   打印出b=Book  name=null
	      map.put("c", 123);
	      map.put("a", 456);
                            
     }
}

Map集合 的方法 

  put(有个返回值Object)   
  get
  remove(也有个返回值)
  containsKey
  containsValue
  size
  isEmpty
  putAll
  clear

  keySet---Set
  values---Conllection

put方法

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Test2 {

	public static void main(String[] args) {	
		
		Map<String, Object> map = new HashMap<String, Object>();
		
		Object o1 = map.put("a", "小明");
		Object o2 = map.put("b", new Book());
		Object o3 = map.put("c", 123);
		Object o4 = map.put("a", 456);

                System.out.println(o1);
		System.out.println(o2);
		System.out.println(o3);
		System.out.println(o4);      
                //以上会打印 null   null   null  小明
                put 严格来讲不是往里添加,而是把原来的那个剑换成另一个值
                一开始实例化一个Map对象的时候,是没有a,小明这个值的,
                硬要获取值的话只能获取到null,这时候获取一下返回值o1,
                null就会给o1,当新添加一个a的时候,原来的值就会返回来
      }
}		

get 方法  通过一个箭去取一个值

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Test2 {

	public static void main(String[] args) {	
		
		Map<String, Object> map = new HashMap<String, Object>();
		
		Object o1 = map.put("a", "小明");
		Object o2 = map.put("b", new Book());
		Object o3 = map.put("c", 123);
		Object o4 = map.put("a", 456);
                
                System.out.println(map.get("c"))    //会打印出123
      }
}

remove  

 

 

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

Java 泛型 - Make Generic 扩展 2 个接口

-1-Generic泛型深入

Java基础之Comparable接口, Collections类,Iterator接口,泛型(Generic)

Collection-Iterator-foreach-泛型(Generic)

Java之集合初探Iterator(迭代器),collections,打包/解包(装箱拆箱),泛型(Generic),comparable接口

Java泛型Generic - Thinking in Java读书笔记