集合
Posted ljlaction
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合相关的知识,希望对你有一定的参考价值。
一、List接口
概述
有序的collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
与 set 不同,列表通常允许重复的元素。
成员方法
void add(int index,E element)//插入
E remove(int index)
E get(int index)
E set(int index,E element)//替换
ListIterator listIterator()
ListIterator接口的成员方法
boolean hasNext()
E next()
ArrayList类
概述
底层数据结构是数组,查询快,增删慢
线程不安全,效率高
LinkedList类
概述
底层数据结构是链表,查询慢,增删快
线程不安全,效率高
特有功能
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及其父类
三、增强for
概述
简化数组和Collection集合的遍历
好处
简化遍历
注意事项
增强for的目标要判断是否为null
public interface Iterable<T> 实现这个接口允许对象成为 "foreach" 语句的目标。
四、可变参数
概述
定义方法的时候不知道该定义多少个参数
格式
修饰符 返回值类型 方法名(数据类型… 变量名){}
注意
这里的变量其实是一个数组
如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个
Arrays工具类中的一个方法
public static <T> List<T> asList(T... a)
以上是关于集合的主要内容,如果未能解决你的问题,请参考以下文章
数学分析集合 ① ( 集合概念 | 集合表示 | 常用的数集合 | 集合的表示 )
数学分析集合 ① ( 集合概念 | 集合表示 | 常用的数集合 | 集合的表示 )
Groovymap 集合 ( map 集合遍历 | 使用 map 集合的 each 方法遍历 map 集合 | 代码示例 )
Groovy集合声明与访问 ( 使用 [] 创建 ArrayList 和 LinkedList 集合 | 集合赋初值 | 使用下标访问集合 | 使用 IntRange 作为下标访问集合 )