List的三个子类,泛型,增强for循环

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了List的三个子类,泛型,增强for循环相关的知识,希望对你有一定的参考价值。

List的三个子类的特点
ArrayList:
底层数据结构是数组,查询快,增删慢。
线程不安全,效率高。
Vector:
底层数据结构是数组,查询快,增删慢。
线程安全,效率低。
LinkedList:
底层数据结构是链表,查询慢,增删快。
线程不安全,效率高。
List接口:
ArrayList:底层数据结构是数组,查询快,增删慢,线程不安全,效率高 可以存储重复元素

int indexOf (Object o)返回此列表中指定元素的第一个出现的索引,或 - 如果此列表不包含元素,或 - 1。
void sort (Comparator < ? super E > c)分类列表使用提供的 Comparator比较元素。
List<E> subList ( int fromIndex, int toIndex)返回一个视图之间的指定 fromIndex,包容,和 toIndex这份名单的部分,独家。
// Object[] toArray () 返回一个数组,包含在这个列表中的所有元素在适当的顺序(从第一个到最后一个元素)。
LinkedList 底层数据结构是链表,查询慢,增删快,线程不安全,效率高
LinkedList类特有功能
public void addFirst (E e)及addLast(E e)
public E getFirst () 及getLast()
public E removeFirst () 及public E removeLast()
Vector:底层数据结构是数组,查询快,增删慢,线程安全,效率低。
E elementAt(int index)
返回指定索引处的组件。
Enumeration<E> elements()
返回此向量的组件的枚举。
E firstElement()
返回第一个组件(在指数 0项目)这个载体。
E lastElement()
返回向量的最后一个组件。

泛型机制:JDK1.5之后引入的一个新特性
泛型机制是一种把数据类型明确工作推迟到创建对象或调用方法时才去明确的一种机制
泛型的语法 <数据类型,数据类型> 数据类型只能写引用数据类型
泛型只在编译期间有效,在运行期就擦除了
泛型的好处1.把问题提前到了编译期

  1. 避免了向下转型
    泛型定义的位置:可以定义在接口,类,方法上面

JDK1.5之后 有一个 新式for循环
普通for循环:
for (int i=0;i<integers.size();i++){
System.out.println(integers.get(i));
}
System.out.println("---------------------------");
//Integer num 容器中的数据类型 以及元素的变量名
//integers 容器名
增强for循环:
for (Integer num: integers){
System.out.println(num);
}

Collection:
public boolean add(E e)
确保此集合包含指定的元素
public boolean addAll(Collection c)
将指定集合中的所有元素添加到这个集合
public void clear()
从这个集合中移除所有的元素
public boolean remove(Object o)
从这个集合中移除指定元素的一个实例,如果它是存在的
public boolean removeAll(Collection c)
删除此集合中包含的所有元素(可选操作)的所有元素(可选操作)。
public boolean contains(Object o)
返回 true如果集合包含指定元素
public boolean containsAll(Collection c)
返回 true如果这个集合包含指定集合的所有元素。
public boolean isEmpty()
返回 true如果集合不包含任何元素。
public Iterator<E> iterator()
返回此集合中的元素的迭代器
public boolean retainAll(Collection<?> c)
仅保留包含在指定集合中的这个集合中的元素(可选操作)。
public int size()
返回此集合中的元素的数目。
public Object[] toArray()
返回包含此集合中所有元素的数组。
List:
public void add(int index, Object element)
将指定的项目添加到滚动列表的结束时。
public Object remove(int index)
从这个滚动列表中移除指定位置上的项目。
public Object set(int index, Object element)
去除或者修复Object方法
public Object get(int index)
返回列表中指定位置的元素。
public ListIterator listIterator()
列表迭代器(List集合特有的迭代器)
Vector
public void addElement(E obj)
添加指定的组件到这个向量的结束,增加其大小由一个
public E elementAt(int index)
返回指定索引处的组件。
public boolean removeElement(Object obj)
从该向量中移除第一个(最低索引)发生的参数。
public void removeElementAt(int index)
在指定的索引中删除组件。
public void setElementAt(E obj, int index)
设置组件在指定的 index这个向量是指定的对象
public Enumeration<E> elements()
返回此向量的组件的枚举。
Enumeration
public boolean hasMoreElements()
测试此枚举是否包含更多元素。
public Object nextElement()
返回此枚举的下一个元素,如果此枚举对象至少有一个元素可以提供。
LinkedList
public void addFirst(E e)
在此列表的开始处插入指定的元素。
public void addLast(E e)
在此列表的结尾处插入指定的元素。
public E getFirst()
返回此列表中的第一个元素。
public E getLast()
返回此列表中的最后一个元素。
public E removeFirst()
移除并返回此列表中的第一个元素
public E removeLast()
移除并返回此列表中的最后一个元素

以上是关于List的三个子类,泛型,增强for循环的主要内容,如果未能解决你的问题,请参考以下文章

2020/7/14 Java之增强for循环泛型List接口Set接口

2020/7/14 java 增强for 泛型 list接口 list接口 set接口

Java的Iterator迭代器补充,增强for循环,泛型,List接口,set接口

java基础第十二篇之集合增强for循环迭代器和泛型

Java—增强for循环与for循环的区别/泛型通配符/LinkedList集合

java 泛型 增强for循环