java集合类

List类
可重复元素,按顺序输出,有索引因此要注意不能索引越界
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class LIST {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("a");
System.out.println(list);
// 添加
list.add(2,"kk");
System.out.println(list);
//删除
list.remove(2);
System.out.println(list);
//替换
list.set(2,"kkk");
System.out.println(list);
//循环3种写法
for(int i=0;i<list.size();i++){
String s=list.get(i);
System.out.println(s);
}
System.out.println("---------------");
Iterator<String> it=list.iterator();
while(it.hasNext()){
String s=it.next();
System.out.println(s);
}
System.out.println("---------------");
for(String s : list){
System.out.println(s);
}
}
}
Arraylist
ArrayList 是一个数组队列,相当动态数组
和Vector不同,ArrayList中的操作不是线程安全的!所以,建议在单线程中才使用ArrayList,而在多线程中可以选择Vector或者CopyOnWriteArrayList。
Linklist
简单来说是链表结构,适合添加,删除操作
import java.util.LinkedList;
public class LinkList {
public static void main(String[] args) {
show01();
System.out.println();
}
private static void show01() {
/*void addFirst(E e)
= push(E e)
在该列表开头插入指定的元素。
void addLast(E e)
= add(E e)
将指定的元素追加到此列表的末尾。
*/
LinkedList<String> link = new LinkedList<>();
link.add("a");
link.add("b");
System.out.println(link);
link.addFirst("kk");
System.out.println(link);
/*
* E get(int index)
返回此列表中指定位置的元素。
E getFirst()
返回此列表中的第一个元素。
E getLast()
返回此列表中的最后一个元素。
*/
/*E removeFirst()
从此列表中删除并返回第一个元素。
=pop()
E removeLast()
从此列表中删除并返回最后一个元素。
remove(int index)
删除该列表中指定位置的元素。
*/
System.out.println(link.removeFirst());
System.out.println(link.removeLast());
System.out.println(link);
link.add("b");
link.add("c");
System.out.println(link);
link.remove(2);
System.out.println(link);
}
}
vector
几乎与Arreylist一样,区别在于它是同步的。
Hashset
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class Demoset {
/*Set
* 特点:无重复元素
* 没有索引,不能使用普通的for循环*/
/*Hashset
* 特点:无重复元素
* 没有索引,不能使用普通的for循环
* 是一个无序的集合
* 查询速度非常快*/
public static void main(String[] args) {
Set<Integer>set=new HashSet<>();
set.add(1);set.add(2);set.add(3);
set.add(1);set.add(-1);
Iterator<Integer>it=set.iterator();
while(it.hasNext()){
Integer a=it.next();
System.out.println(a);
}
System.out.println("---------");
for(Integer i : set){
System.out.println(i);
}
}
}
LinkedHashSet
底层是一个哈希表加链表,记住其和Hashset不一样的一个性质是它是有序的

浙公网安备 33010602011771号