list接口:
一个元素存取有序的集合,它是一个带有索引的集合,集合中可以有重复的元素。
import java.util.ArrayList;
import java.util.List;
public class Demo01 {
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("123");
list.add("abc");
//在指定位置插入指定元素
list.add(1,"456");
//删除指定位置上的元素
String s=list.remove(1);
System.out.println("删除的元素为"+s);
//替换指定位置上的元素
String a=list.set(0, "小猪佩奇");
System.out.println("替换的元素为"+a);
//遍历
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}
Iterator的并发修改异常
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Demo02 {
public static void main(String[] args) {
List<String> arr=new ArrayList<String>();
arr.add("a");
arr.add("b");
arr.add("c");
//在遍历时判断该集合中是否有“b”元素,如果有则在该位置添加一个“d”
//获取迭代器对象
Iterator<String> it=arr.iterator();
while(it.hasNext()){
String s=it.next();
if(s.equals("b")){
arr.add("d");
}
}
}
}
List集合存储数据的结构
堆栈、数组、队列、链表
LinkedList集合
LinkedList集合数据存储的结构是链表结构
import java.util.LinkedList;
import java.util.List;
public class Demo03 {
public static void main(String[] args) {
LinkedList<String> arr=new LinkedList<String>();
arr.addFirst("a");
arr.addFirst("b");
arr.addLast("c");
arr.addLast("d");
//获取集合中第一个元素
System.out.println("集合中第一个元素为"+arr.getFirst());
//获取集合中最后一个元素
System.out.println("集合中最后一个元素为"+arr.getLast());
//删除集合中第一个元素
arr.removeFirst();
arr.removeFirst();
//删除集合中最后一个元素
arr.removeLast();
for(String s:arr){
System.out.println(s);
}
if(!arr.isEmpty()){
System.out.println("该集合不为空");
}
}
}
Vector集合
Vector集合数据存储的结构是数组结构,为JDK中最早提供的集合。
取出方式:枚举Enumeration。
Vector集合已被ArrayList替代,枚举Enumeration已被迭代器Iterator替代。
set接口
HashSet集合:此类实现Set接口,由哈希表支持(实际上是一个 HashMap集合)。HashSet集合不能保证的迭代顺序与元素存储顺序相同。
保证HashSet集合元素的唯一,其实就是根据对象的hashCode和equals方法来决定的。
import java.util.HashSet;
public class Demo01 {
public static void main(String[] args) {
HashSet<String> set=new HashSet<String>();
set.add("a");
set.add("a");
set.add("b");
//遍历
for(String s:set){
System.out.println(s);
}
}
}
public class Demo02 {
public static void main(String[] args) {
String a="abc";
String b="abc";
System.out.println(a.hashCode());
System.out.println(b.hashCode());
}
}
public class Demo04 {
public static void main(String[] args) {
LinkedHashSet<String> set=new LinkedHashSet<String>();
set.add("abc");
set.add("aaa");
set.add("bcd");
set.add("abc");
for(String s:set){
System.out.println(s);
}
}
}