List接口
list允许重复、有序(输入输出顺序) 数组的数据结构(底层维护的是一个数组) 查询快、增删慢
List中常用的子类有两个:
ArrayList:底层维护的是一个数组数据结构,查询快,增删慢
LinkedList:底层维护的是一个链表数据结构,增删快、查询慢
如果查询多就用ArrayList,如果增删多就用LinkedList,如果不知道就选ArrayList,因为往往查询比增删需求多
下面用ArrayList写的一些东西
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class ListDome {
public static void main(String[] args) {
removeMethod();
}
/**
* 通过下标移除元素
*/
public static void removeMethod(){
List list = new ArrayList();
list.add("渊虹");
list.add("巨阙");
list.add("鲨齿");
list.add(1,"水寒");
System.out.println("list:"+list);
//这个是插入进去,渊虹和巨阙中间
//移除指定下标对应的元素
list.remove(2);
System.out.println("移除后的list"+list);
//把巨阙移除了,水寒就顶替了
List list2 = new ArrayList();
list2.add("灵山");
list2.add("震雷山");
list2.add("巨阙");
//移除两个集合相同的元素,只留第一个集合
list.remove(list2);
System.out.println("移除后的list"+list);
}
//这个是两个集合合并,相同的只留一个
public static void addMethod(){
List list = new ArrayList();
list.add("渊虹");
list.add("巨阙");
list.add("鲨齿");
list.add(1,"水寒");
System.out.println("list:"+list);
//移除指定下标对应的元素
list.remove(2);
System.out.println("移除后的list"+list);
List list2 = new ArrayList();
list2.add("灵山");
list2.add("震雷山");
list2.add("巨阙");
//移除指定集合
list.addAll(1,list2);
System.out.println("添加后的list"+list);
}
/**
* list集合中指针查找方向
*/
public static void listIteratorMethod(){
List list = new ArrayList();
list.add("渊虹");
list.add("巨阙");
list.add("鲨齿");
//获取迭代器
ListIterator listIt = list.listIterator();
System.out.println("下一个"+listIt.next());
System.out.println("下一个"+listIt.next());
System.out.println("下一个"+listIt.next());
//后面是倒回来
System.out.println("上一个"+listIt.previous());
System.out.println("上一个"+listIt.previous());
System.out.println("上一个"+listIt.previous());
}
/**
* 在迭代的过程中修改集合中的元素
*/
public static void listIteratorMethod2(){
List list = new ArrayList();
list.add("渊虹");
list.add("巨阙");
list.add("鲨齿");
//获取迭代器
ListIterator listIt = list.listIterator();
int i=0;
while(listIt.hasNext()){
Object obj = listIt.next();
if(i%2 != 0){
listIt.add("圣"+i+"剑");
}else{
listIt.add("邪"+i+"剑");
}
i++;
}
System.out.println("修改后的集合:"+list);
}
/**
* 获取指定下标对应的元素
*/
public static void getElementMethod(){
List list = new ArrayList();
list.add("渊虹");
list.add("巨阙");
list.add("鲨齿");
System.out.println("排名第一的是"+list.get(0));
}
}
Set集合
不允许重复,且不保证输出顺序
import java.util.HashSet;
import java.util.Set;
public class SetDome {
public static void main(String[] args) {
method();
}
/**
* 不重复
*/
public static void method(){
Set set = new HashSet();
set.add("天问");
set.add("渊虹");
set.add("太阿");
set.add("含光");
set.add("天问");
System.out.println(set);
}
}
[渊虹, 含光, 天问, 太阿]