1.Collection 接口
* List 存储的对象是有序的(元素的顺序与添加元素的顺序保持一致),可以重复的.
* ArrayList:底层的数据结构是数组,线程不安全的,查找速度快,添加删除速度慢
* Vector :底层的数据结构是数组,线程安全的,查找速度快,添加删除速度慢
* LinkedList :底层的数据结构是链表,线程不安全的,查找速度慢,添加删除速度快
* Set 存储的对象是无序的,不可以重复
* HashSet 类
* TreeSet 类
package com.test;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
/*
* 1.Collection 接口
* List 存储的对象是有序的(元素的顺序与添加元素的顺序保持一致),可以重复的.
* ArrayList:底层的数据结构是数组,线程不安全的,查找速度快,添加删除速度慢
* Vector :底层的数据结构是数组,线程安全的,查找速度快,添加删除速度慢
* LinkedList :底层的数据结构是链表,线程不安全的,查找速度慢,添加删除速度快
* Set 存储的对象是无序的,不可以重复
* HashSet 类
* TreeSet 类
*/
public class Demo8 {
public static void main(String[] args) {
// * List:特有方法,可以操作下标
List list = new ArrayList();
// 1.增:
// void add(int index, E element)
list.add(0, "java");
list.add("html");
list.add("html2");
list.add("html3");
list.add("html4");
list.add(0, "python");
System.out.println(list);// [python, java, html, html2, html3, html4]
// boolean addAll(int index, Collection<? extends E> c)
// 2.删
// E remove(int index) 删除指定位置的元素 E就是我们要删除的元素
System.out.println(list.remove(0));// python,是被删除的元素
System.out.println(list);// [java, html, html2, html3, html4]
// 3.改
// E set(int index, E element) 返回的是被替换的元素
System.out.println(list.set(0, "BigData"));// java
System.out.println(list);// [BigData, html, html2, html3, html4]
// 4.查
// ListIterator<E> listIterator()
test();
// 返回此列表元素的列表迭代器(按适当顺序)。
// ListIterator<E> listIterator(int index)
// List<E> subList(int fromIndex, int toIndex) 包含开头不包含结尾
System.out.println(list.subList(1, 3));// [html, html2]
// E get(int index) 根据下标取元素
System.out.println(list.get(0));// BigData
// 5.删除全部对象
}
// 4.查
// ListIterator<E> listIterator()
public static void test() {
List list = new ArrayList();
list.add(0, "java");
list.add("html");
list.add("html2");
list.add("html3");
list.add("html4");
list.add(0, "python");
// 1.先获取迭代器对象
ListIterator iterator = list.listIterator();
// 从左到右遍历
while (iterator.hasNext()) {//使用hasNext()检查序列中是否还有元素,将当前的元素取出,将指针指向他右边的元素
Object object = (Object) iterator.next();
System.out.println("元素=" + object);// 元素=python,元素=java,元素=html,元素=html2,元素=html3,元素=html4
}
// 从右到左遍历
while (iterator.hasPrevious()) {//
Object object = (Object) iterator.previous();// 将当前的元素取出,将指针指向他左边的元素
System.out.println("反向:" + object);// 反向:html4,反向:html3,反向:html2,反向:html,反向:java,反向:python
}
// 注意事项:
while (iterator.hasNext()) {
Object object = (Object) iterator.next();
System.out.println("元素=" + object);// 元素=python,元素=java,元素=html,元素=html2,元素=html3,元素=html4
// 要将java删除
if (object.equals("java")) {
// 在使用迭代器期间使用list直接对元素进行删除,有时会发生错误.所以不要这样做.
// list.remove("java");
// 使用迭代器的自带方法删除
// 注意:在使用remove,set,add方法时,尽量不要同时使用.
iterator.remove();
}
}
System.out.println(list);// [python, html, html2, html3, html4]
}
}