文章目录
ArrayList(重点)
Vector
LinkedList(理解)
List接口中常用方法和例子
遍历集合
Vector
ArrayList
ArrayList 是 List 接口的典型实现类、主要实现类本质上,ArrayList是对象引用的一个”变长”数组。
概述
.
ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
.
ArrayList 继承了 AbstractList ,AbstractList 是List 接口的子类。AbstractList 是个抽象类,适配器设计模式。
.
ArrayList 是List 接口的子类,此类的定义如下:
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, Serializable
Jdk 1.8 和 1.7
ArrayList的JDK1.8之前与之后的实现区别?
JDK1.7:ArrayList像饿汉式,直接创建一个初始容量为10的数组。
JDK1.8:ArrayList像懒汉式,一开始创建一个长度为0的数组,当第一次添加第一个元素时再创建一个始容量为10的数组,如果添加一组元素且元素数量很大则创建一个刚好够存的容量大小
List接口中常用方法和例子
/**
* ArrayList 有序 由下标 元素可重复
* LinkedLst 删除和插入数据数据快
*/
List list = new ArrayList();
//增
/**.add() 添加数据*/
list.add("张三");
list.add(10);
list.add(3.14);
list.add('男');
list.add('女');
list.add(11);
list.add(12);
//删
/**list.remove(index) 根据下移除数据*/
list.remove(5);
boolean b = list.remove(3.14);
System.out.println(b);
/**list.remove(Object) 删除括号里面的数据*/
//改
/**set.(index ,值) 在指定位置插入指定数据*/
list.set(1, "李四");
//查
/**.size() 获取集合长度 */
int length = list.size();
for(int i =0; i<length; i++) {
/**.get(index) 根据下标获取数据*/
Object Obj = list.get(i);
System.out.println(Obj+" ");
System.out.println("--------第二种---forEach----");
/**
* 增强版的for循环 ----foreach
* 语法 for(数据类型 对象名:集合名字){}
* 作用 把集合中的每一个数据都赋值该前面的数据对象
* ---Object Obj = list.get(i);
*/
for(Object obj:list) {
System.out.println(obj+" ");
}
迭代器循环
/**.iterator() 获取一个迭代器*/
java.util.Iterator iterator = list.iterator();
/**hasNext() 判断下一个还没有值.有数据继续循环.没有数据停止循环*/
while(iterator.hasNext()) {
/**iterator.next() 获取下一个值*/
Object obj= iterator.next();
System.out.println(obj+" ");
}
遍历集合
•迭代器遍历(两种)
• •iterator
•listIterator
•for循环遍历(两种)
• •for (int i = 0; i < 集合.length; i++)
•for(Object o : 集合)
Vector
Vector概述
Vector 属于Java 元老级的操作类,是最早的提供了动态对象数组的操作类,在JDK 1.0 的时候就已经推出了此类的使用,只是后来在JDK 1.2 之后引入了Java 类集合框架。但是为了照顾很多已经习惯于使用Vector 的用户,所以在JDK 1.2 之后将Vector 类进行了升级了,让其多实现了一个List 接口,这样才将这个类继续保留了下来。
import java.util.List;
import java.util.Vector;
public class VectorDemo01 {
public static void main(String[] args) {
List<String> all = new Vector<String>(); // 实例化List对象,并指定泛型类型
all.add("hello "); // 增加内容,此方法从Collection接口继承而来
all.add(0, "LAMP ");// 增加内容,此方法是List接口单独定义的
all.add("world"); // 增加内容,此方法从Collection接口继承而来
all.remove(1); // 根据索引删除内容,此方法是List接口单独定义的
all.remove("world");// 删除指定的对象
System.out.print("集合中的内容是:");
for (int x = 0; x < all.size(); x++) { // size()方法从Collection接口继承而来
System.out.print(all.get(x) + "、"); // 此方法是List接口单独定义的