博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java泛型(一)ArrayList和HashMap
阅读量:7055 次
发布时间:2019-06-28

本文共 3017 字,大约阅读时间需要 10 分钟。

hot3.png

 

package Plan.GenericDemo;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;import org.junit.Test;public class Demo1 { public static void main(String[] args) {  //  ArrayList
//  <>称之为typeof//  E称之为类型参数变量//  ArrayList
中的Integer称之为实际类型参数//  ArrayList
称之为泛型类型。犹如Map
//  ArrayList
称之为参数化的类型(ParameterizedType)      {   System.out.println("runing");   List list = new ArrayList();   list.add("item1 String");   list.add(1);   list.add(1.2);   list.add(new Integer(1));   Iterator iter = list.iterator();   while (iter.hasNext()) {        Object item = iter.next();    if(item.getClass()==int.class)    {     System.out.println("--look out! int   " + item);    }    else if(item.getClass()==Integer.class)    {     System.out.println("--look out! Integer   " + item);    }    else    {     System.out.println(item.getClass().toString());    }    System.out.println("That is " + item);   }  }    {   List
 listStr = new ArrayList
();   listStr.add("I am ...");   Iterator
 iter = listStr.iterator();   while (iter.hasNext()) {    String str = iter.next();    System.out.println("This is " + str);   }      for(String str:listStr)   {    System.out.println(str+"   !!!!!!!!!!!!!!");   }      System.out.println("exit");  }      {     }       }     @Test public void Test1() {  Map map=new HashMap();  map.put("k1", 0);  map.put("k2", 1);  map.put(1.2, 2);    map.put("k4", "sdfsdf");  map.put("k5", 4);  map.put("k6", 5);            }  @Test public void Test2() {  //注意使用泛型时,泛型类型必须是引用数据类型,不能使基本数据类型  Map
 map=new HashMap
();  //可以不用Integer(0),直接用0.因为jdk5支持装箱  map.put("k1", 0);  map.put("k2", 1);  map.put("k3", 2);    map.put("k4", 3);  map.put("k5", 4);  map.put("k6", 5);   map.put("k7", null);     {   System.out.println("Keyset:");   Set
set=map.keySet();   Iterator
 iter = set.iterator();   while(iter.hasNext())   {    String str=iter.next();    System.out.println(str);   }     }  {   System.out.println("\r\nentrySet:");   map.entrySet();   Set
>set=map.entrySet();         System.out.println("\r\n迭代器遍历:");   Iterator
> iter = set.iterator();   while(iter.hasNext())   {    Map.Entry
 entry=iter.next();    System.out.println(entry.getKey()+" = "+entry.getValue());   }      System.out.println("\r\n增强for循环:(注意:HashMap没有实现Iterable借口,所以不能使用;而需要用entrySet得到set)");      for(Map.Entry
 entryItem:set)   {    //jdk5支持装箱支持拆箱    System.out.println(entryItem.getKey()+" : "+entryItem.getValue());   }  } }   @Test public void Test3() {  //Type mismatch: cannot convert from ArrayList
 to ArrayList
  //ArrayList arraylistObjectRef=new ArrayList
();    //Type mismatch: cannot convert from ArrayList
 to ArrayList
  //ArrayList
 arraylistStringRef=new ArrayList
();  //  在使用泛型的时候,如果两边都使用了泛型类型,那么必须完全一样。//  但是, 如果一边没有使用泛型类型,无论哪边使用那哪边没有都是可以的。  ArrayList arraylistRef=new ArrayList
();  ArrayList
 arraylistStringRef=new ArrayList(); }  //泛型时提供给javac便一起使用的,它用于限定集合的输入类型,让编译器在源代码级别上,即挡住向集合中插入非法数据。 //但编译器编译带有泛型的java程序之后,生成的class文件中将不再待用泛型信息。 //以此使得程序运行效率不受到影响,这个过程称之为“擦除”}

转载于:https://my.oschina.net/happyBKs/blog/289315

你可能感兴趣的文章
Linux系统下怎样利用nc命令来监控检测服务器的端口使用情况
查看>>
git命令总结
查看>>
tomcat高访问jvm配置
查看>>
谢烟客---------二进制安装MariaDB,管理关系型数据库的基本组件
查看>>
JS 判断手机浏览器
查看>>
Xcode WorkSpace静态库多项目依赖
查看>>
【C语言】 实现memset
查看>>
JS 流程设计器
查看>>
blog小记
查看>>
我的友情链接
查看>>
fileoper.py
查看>>
我的友情链接
查看>>
shell脚本将指定目录下前3天日期目录使用tar打包后并将其删除源日期目录
查看>>
类的静态成员
查看>>
osi七层模型的分类
查看>>
潍坊SEO教程之网站关键词密度
查看>>
HTTPS原理和CA证书申请(满满的干货)
查看>>
跨交换机实现VLAN
查看>>
mysql客户端的使用
查看>>
AIX创建删除page space
查看>>