zoukankan      html  css  js  c++  java
  • 泛型

    package cn.hncu.generic.v1;

    import java.util.ArrayList;
    import java.util.Iterator;

    public class GenericDemo1 {
    public static void main(String[] args) {
    ArrayList list = new ArrayList();
    list.add("a111");
    list.add("a222e23");
    list.add("a333fdjk23232");
    list.add(100);//这一句会导致出现异常

    Iterator it = list.iterator();
    while(it.hasNext()){
    String str = (String) it.next();
    System.out.println(str+"---,len:"+str.length());
    }
    }
    }

    -----------------------------------------------------

    package cn.hncu.generic.v1;

    import java.util.ArrayList;
    import java.util.Iterator;

    public class GenericDemo2 {
    public static void main(String[] args) {
    ArrayList<String> list = new ArrayList<String>();
    //ArrayList<Integer> list = new ArrayList<Integer>();

    list.add("a111");
    list.add("a222e23");
    list.add("a333fdjk23232");
    //list.add(100);//泛型的第1个好处:可以把运行期的错误提前到编译期

    Iterator<String> it = list.iterator();
    while(it.hasNext()){
    String str = it.next(); //泛型的第2个好处:不需要类型强转
    System.out.println(str+"---,len:"+str.length());
    }
    }
    }

    -------------------------------------------

    package cn.hncu.generic.v1;

    public class MySet<E> {
    private E objs[];

    @SuppressWarnings("unchecked")
    public MySet() {
    Object t[] = new Object[0];
    objs =(E[])t;
    }

    @SuppressWarnings("unchecked")
    public boolean add(E obj) {
    // 判断对象是否已经存在----用卫条件守护
    if( contains(obj) ){
    return false;
    }

    // 扩容
    Object tempObjs[] = new Object[objs.length + 1];
    for (int i = 0; i < objs.length; i++) {
    tempObjs[i] = objs[i];
    }
    tempObjs[objs.length] = obj;
    objs = (E[]) tempObjs;

    return true;
    }

    public boolean contains(Object obj){
    for(Object o:objs){
    if(o.equals(obj)){
    return true;
    }
    }
    return false;
    }

    public E[] getAll(){
    return objs;
    }

    public int size() {
    return objs.length;
    }

    }

  • 相关阅读:
    C#-WebApi-EF-CodeFirst-构建迁移命令说明
    webform-rdlc报表报错:未能加载文件或程序集Microsoft.SqlServer.Types版本错误的处理方案
    Observable与Subject
    使用ionic生成apk时遇到的错误:[ERROR] An error occurred while running subprocess cordova
    Socket通讯
    Transactions-事务
    Visual studio2017前端项目包管理从Borwer升级到libman
    NetCore-EFCore-DBfirst-同步数据库生成Model
    学习计划
    关于Vue2.5 less 版本过高
  • 原文地址:https://www.cnblogs.com/1314wamm/p/5677080.html
Copyright © 2011-2022 走看看