Java19-1 常用集合子类
2018-12-27 本文已影响0人
第二套广播体操
list : 有序 存入顺序和取出顺序一致 有索引 允许重复元素
set:不允许重复元素
List接口中特有方法 围绕索引定义
支持增删改查
add(index element);按照索引增加元素
remove(index); 按照角标删除
set(index newelement) 按照索引添加新元素
indexof(element);根据元素获取其位置
element get(index);根据索引获取元素
ListInterator();列表迭代器 可以对迭代到得元素进行增删改
Api
List 独有的遍历方法
for (int i = 0; i <list.size(); i++) {}
代码讲解
public class ListDemo {
public static void main(String[] args) {
List list=new ArrayList();
ListMethod(list);
}
private static void ListMethod(List list) {
list.add("abc1");
list.add("abc2");
list.add("abc3");
list.add("abc4");
// list.add(1,"haha"); 插入1位置上
// list.set(2,"hehe");更改2位置上
// System.out.println(list);
for (int i = 0; i <list.size(); i++) {
System.out.println("list: "+list.get(i));
}
Iterator iterator=list.iterator();
while (iterator.hasNext()) {
Object next = iterator.next();
}
for (Iterator iterator = list.iterator(); iterator.hasNext(); ) {
String next = (String) iterator.next();
System.out.println("iterator: "+next);
}
/* for (Iterator iterator = list.iterator(); iterator.hasNext(); ) {
String next = (String) iterator.next();
if (next.equals("abc2"))//ConcurrentModificationException 并发访问 list修改 interator不知道
{list.add(1,"呵呵");
}
System.out.println(list);
}*/
//使用列表迭代器 删除不需要 增删改需要
for (ListIterator it = list.listIterator(); it.hasNext(); ) {
String next = (String) it.next();
if (next.equals("abc2"))
{it.add("哈哈");
}
}
System.out.println(list);
}
}
List 具体子类 子类之所以区分 因为数据结构不同 存储数据方式不同
vector 数组结构是数组 是可变长度的 线程同步的 慢 老版本 都慢
ArrayList 数组结构是数组 是可变长度的 线程不同步 快 新版本 增删速度不快 查询快
LinkedList 链表结构 可变长度 不同步 快 增删快 查询不快