zoukankan      html  css  js  c++  java
  • 集合、增强for、泛型

    Collection集合:
    Collection是层次结构中的根接口,存储的元素为对象,(也就是说只能存储引用数据类型,不能存储基础数据类型),具体可查询API。
    集合与数组的区别:
    1、集合只能存放引用数据类型,不能存放基本数据类型,存储基本类型,需要使用基本数据类型对应的包装数据类型;数组可以存放任意数据类型
    2、集合创建对象的时候,可以不定义指定长度,也可不指定内容;数组创建对象的时候必须指定长度或者元素。
    3、一个集合对象中可以存放多种数据类型,而数组中只能存放一种数据类型。
    4、集合的长度是可变的,数组长度是固定的。
    选用的规则:当需要一个容器,既不能指定容器的内容,也无法确定容器的长度时,可以使用集合,否则建议使用数组。数组的效率是相对较高

    Iterator迭代器:
    当从集合获取元素的时候,有一个通用的流程,将这个通用的流程描述成了一个接口,这个接口就是Iterator。
    迭代器能操作集合也能操作数组!!!
    如何操作迭代器
    迭代器的常用方法;
    hasNext()、next()
    注意事项:当一次循环中需要多次使用元素值时,一定不能使用匿名对象,否则会繁盛元素找不到的异常;
    当迭代器遍历几个的过程中,不允许使用集合自身的方法,改变集合的长度。

    增强for:
    增强for的实质就是一个迭代器;增强for只能在JDK1.5之后才能使用;在增强for的内部不允许改变集合的长度。
    增强for格式:
    for(元素的数据类型 变量名 : 被迭代的集合或数组){}
    泛型:
    特殊的变量;保存的是引用数据类型;
    带泛型的类:类定义格式:
    public class 类名<泛型名>{
    //成员变量
    private 泛型名 name;
    //成员方法
    修饰符 泛型名 方法名(泛型名 参数名){

    }
    }
    对象创建格式:
    类名<具体的数据类型> 对象名 = new 类名<具体的数据类型>();
    注意事项:<具体的数据类型>在等号左右两边必须保持一致,不能使用多态
    泛型的好处:1、可以避免数据类型的强转2、可以将运行时期可能发生的异常提前到了编译时期。
    泛型方法:当定义一个类的时候,没有使用泛型,name定义方法的时候,允许针对某一个方法使用泛型
    格式:
    修饰符 <泛型名> 泛型名 方法名(泛型名 参数名){
    这种方法额发回执类名取决于参数的数据类型
    }
    这种方法调用的时候,可以调用任意数据类型的参数值。
    泛型接口:
    格式:
    public interface 接口名<泛型名>{
    抽象方法的返回值和参数类型名

    public abstract 泛型名 方法名(泛型名 参数名);
    }
    由于接口不能直接创建对象,因此接口中的泛型的值有两种赋值的方法;
    方法1:定义子类的时候,直接传递;(写死了)
    public class 子类 implement 接口名<具体的数据类型>{}
    方法2:定义子类的时候,子类也子类也规定泛型,name将来创建子类对象的时候,会一并将泛型的值传递给接口;
    格式:
    public class 子类<泛型名> implement 接口名<泛型名(必须与子类的泛型相同)>{}
    泛型通配符
    由于泛型中没有多态,所以采用泛型通配符的形式拜师多种数据类型
    格式:
    ?Extends 具体的数据类型 限定了上限
    ?Super具体的数据类型 限定了下限

  • 相关阅读:
    Vue Cli3.0 使用jquery
    使用js加载器动态加载外部js、css文件
    通过js获取本机的IP地址
    $.ajax 中的contentType类型
    vue中 :style 与 :class 三元运算符使用
    bootstrap table checkbox获得选中得数据
    vscode自动生成文件头部注释和函数注释
    axios二次封装的几种方法
    vue组件库element-ui 的Table内容显示不更新
    Linux中iptables设置详细
  • 原文地址:https://www.cnblogs.com/dubin382460/p/7499706.html
Copyright © 2011-2022 走看看