标签:控制 数据 each 值类型 可变参 index move jdk 参数
有序的collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
与 set 不同,列表通常允许重复的元素。
void add(int index,E element)//插入
E remove(int index)
E get(int index)
E set(int index,E element)//替换
ListIterator listIterator()
boolean hasNext()
E next()
底层数据结构是数组,查询快,增删慢
线程不安全,效率高
底层数据结构是链表,查询慢,增删快
线程不安全,效率高
public void addFirst(E e)及addLast(E e)
public E getFirst()及getLast()
public E removeFirst()及public E removeLast()
JDK1.5以后出现的机制,早期的Object类型可以接收任意的对象类型,但是在实际的使用中,
会有类型转换的问题。也就存在这隐患,所以Java提供了泛型来解决这个安全问题。
1:泛型是一种特殊的类型,它把指定类型的工作推迟到客户端代码声明并实例化类或方法的时候进行。
也被称为参数化类型,可以把类型当作参数一样传递过来,在传递过来之前我不明确,但是在使用的时候我就用明确了。
2:泛型的好处
A:提高了程序的安全性
B:将运行期遇到的问题转移到了编译期
C:省去了类型强转的麻烦
把泛型定义在类上
格式:public class 类名<泛型类型1,…>
注意:泛型类型必须是引用类型
把泛型定义在方法上
格式:public <泛型类型> 返回类型 方法名(泛型类型 .)
把泛型定义在接口上
格式:public interface 接口名<泛型类型1…>
泛型通配符<?>
任意类型,如果没有明确,那么就是Object以及任意的Java类了
? extends E
向下限定,E及其子类
? super E
向上限定,E及其父类
简化数组和Collection集合的遍历
简化遍历
增强for的目标要判断是否为null
public interface Iterable<T> 实现这个接口允许对象成为 "foreach" 语句的目标。
定义方法的时候不知道该定义多少个参数
修饰符 返回值类型 方法名(数据类型… 变量名){}
这里的变量其实是一个数组
如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个
Arrays工具类中的一个方法
public static <T> List<T> asList(T... a)
标签:控制 数据 each 值类型 可变参 index move jdk 参数
原文地址:https://www.cnblogs.com/ljlaction/p/9561132.html