首页 > 编程语言 >Java 泛型与通配符 定义与使用

Java 泛型与通配符 定义与使用

时间:2022-09-03 21:36:39浏览次数:58  
标签:Java list ArrayList 通配符 initialCapacity add 泛型 public

一、泛型

  1. 定义:
    把类型明确的工作推迟到创建对象或调用方法时才明确的类型,简而言之,未明确的数据类型
  2. 类型:
    泛型类,泛型方法,方形接口。
  3. 格式
  • 泛型类格式:class 类名<E变量>{}
  • 泛型方法格式:修饰符 <泛型> 返回值类型 方法名(参数列表(使用泛型)){方法体}
  • 泛型接口格式:修饰符 interface 接口名<>{ 必须是抽象的方法}
  1. 使用:
泛型类:
public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{
    /**
     * Constructs an empty list with the specified initial capacity.
     *
     * @param  initialCapacity  the initial capacity of the list
     * @throws IllegalArgumentException if the specified initial capacity
     *         is negative
     */
    public ArrayList(int initialCapacity) {
        if (initialCapacity > 0) {
            this.elementData = new Object[initialCapacity];
        } else if (initialCapacity == 0) {
            this.elementData = EMPTY_ELEMENTDATA;
        } else {
            throw new IllegalArgumentException("Illegal Capacity: "+
                                               initialCapacity);
        }
    }

}
泛型方法:
public class WideType {
   public static void main(String[] args) {
       WideType m=new WideType();
       m.method(1);
       m.method("倪妮");
       m.method(true);
       m.method(8.8);
       System.out.println("--------");
       method2(8);
       method2("蔡卓亦的微笑");
       method2(9.9);
       method2("l love java");
   }
   public <E> void method(E e){
       System.out.println(e);
   }
   public static <E> void method2(E e){
       System.out.println(e);
   }
}
泛型接口:
public interface Iterator<E> {

       boolean hasNext();

       E next();
}

二、通配符 ?

  1. 定义:
    代表任意的数据类型;不能创建对象使用,只能在方法中使用
  2. 使用
public static void main(String[] args) {
        ArrayList<String> list=new ArrayList<>();
        list.add("倪妮");
        list.add("真漂亮!");
        list.add("feel");
        ArrayList<Integer> list3=new ArrayList<>();
        list3.add(2);
        list3.add(0);
        print(list);
        print(list3);
    }
    public static void print(ArrayList<?> list2){
        Iterator<?> it=list2.iterator();
        while(it.hasNext()){
            Object next = it.next();
            System.out.println(next);
        }
}

标签:Java,list,ArrayList,通配符,initialCapacity,add,泛型,public
From: https://www.cnblogs.com/arek/p/16653619.html

相关文章

  • 开学的JavaScript第一次测试
    这次的课堂测试我的成绩并不理想,经过一些时间的反思,我总结了一些不周到的原因,首先是我在做老师的给定的程序是没有仔细阅读,没有看到一些具体的要求,导致多米诺古效应,所以进......
  • JavaConfig和XML之间的互相引用
    JavaConfig引用JavaConfig  现在,我们临时假设PersonConfig已经变得有些笨重,我们想要将其进行拆分。当然,它目前只定义了两个bean,远远称不上复杂的Spring配置。不过......
  • JavaScript 非运算(!)之双感叹号的使用技巧
    我的另一篇博文中提到JavaScript有哪些是假值,哪些是真值。对于null、undefined、"",等一些假值,JavaScript直接视为false。我有一个需求,判断从浏览器中获取的Cookie是......
  • 【设计模式】Java设计模式 -工厂模式
    【设计模式】Java设计模式-工厂模式......
  • java复习随笔(三)
    常用类StringBuffer类String类创建的字符串是常量,是不可更改的。若要对字符串进行动态增减。则用StringBuffer类,它的对象是可以扩充和修改的,因此StringBuffer又称动态字......
  • Eclipse配置Tomcat搭建java Web (JSP)开发环境
    配置Tomcat服务1.打开窗口-首选项-Server-RuntiomeEnvironments2.点击ADD,选择对应的Tomcat版本,点击下一步路径选择Tomcat解压后的文件夹目录,点击完成并保存创建动......
  • 【Java基础】注释、标识符、关键字
    注释、标识符、关键字1.注释准备阶段建项目是要新建一个空的项目空项目新建完成后要新建一个模组新建的空项目需要配置环境(不勾选环境程序无法执行)注释......
  • java 简介 与 安装
    java简介与安装一、Java简介java的特性和优势简单性面向对象可移植性高性能分布式动态性多线程安全性健壮性Java的三大版本JavaSE:标......
  • 如何在 JavaScript 中从日期中减去秒数
    如何在JavaScript中从日期中减去秒数让我们学习如何轻松地从a中减去任意秒数日期JavaScript中的对象。1.日期setSeconds()和getSeconds()方法从a中减去......
  • Java的数据类型
    数据类型强类型语言要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用弱类型语言如:JavaScriptJava的数据类型分为两大类基本类型(Primitivetype)引用......