list集合家族

tech2022-09-05  100

集合:集合是指具有某种特定性质的具体或抽象的对象汇总而成的集体

java.util.Collection 集合

Collection是所有集合的顶级接口,规定了所有集合都必须具备的相关方法。

Collection存储的是value对象

list有序可重复

ArrayList
LinkedList
Vector

set无序无重复

Map存储的是key-value形式存在

key无序无重复,value无序可重复

集合与数组功能相似,用来保存一组元素,并提供了对元素操作的相关方法,使用更便捷。

Collection下面有两个常见的集合类型:

java.util.List:可重复集,并且有序

java.util.Set:不可重复集

Set集合不可以存放重复元素,而元素是否重复是依靠元素自身equals比较的结果而定。

所有的集合都在java.util包下

ArrayList

构造方法:无参数的构造方法,传递一个初始化容量的构造方法,传递一个Collection参数的构造方法

常用方法

boolean add(E e)
向当前集合中添加给定元素,成功添加后则返回true
int size()
返回当前集合的元素个数
boolean isEmpty()
判断当前集合是否为一个空集
集合不含有任何元素(size=0)
clea()
清空集合元素
boolean remove(E e)
删除集合元素
从集合中删除给定元素,删除的是集合中与给定元素equals比较为true的元素。
集合会挨着比较,找到一个可以删除的就停止了,即最多只能删除一个
重载方法:删除索引位置的元素remove(int i),删除指定对象元素remove(Object o)
如果想删除1索引位置的元素,调用remove(1);
如果想删除对象为1的对象,调用remove(new Integer(1));
addAll(Collection<? extends E> e)
将给定集合中的所有元素添加到当前集合中
boolean contains(E e)
判断当前集合是否包含给定元素,判断也是根据元素equals比较的。
boolean containsAll(Collection c)
判断当前集合是否包含给定集合的所有元素。
boolean removeAll(Collection c)
删除当前集合中与给定集合的共有元素(删交集)

Vector类

java.util包下的类 是ArrayList的早期版本(StringBuffer是早期,StringBuilder是后来版本) Vector底层也是利用动态数组的形式存储 线程同步的,安全性高,效率低 扩容方式与ArrayList不同:默认扩容的是两倍,可以通过构造方法创建对象时进行修改 构造方法:无参数的构造方法,传递一个初始化容量的构造方法,传递一个Collection参数的构造方法,传递两个Integer类型的参数,第一个表式初始化容量,第二个表式每次扩容的长度

Stack类,栈

/** * 栈结构 * 栈也是经典的数据结构之一 * 栈可以保存一组元素,但是存取必须遵循先进后出原则。 * 通常使用栈完成"后退"这样的功能 * @author Administrator * */ public class StackTest { public static void main(String[] args) { Stack<String> stack = new Stack<>(); //将某一个元素压入栈顶 stack.push("one"); stack.push("two"); stack.push("three"); stack.push("four"); stack.push("five"); //查看所有元素 System.out.println(stack); //查看个数 System.out.println(stack.size()); //查看栈顶的一个元素,但不删除 System.out.println(stack.peek()); //判断是否为空 System.out.println(stack.isEmpty()); //查找给定元素在栈中的位置 System.out.println(stack.search("o")); //将某一个元素从栈顶取出并删掉 String str = stack.pop(); System.out.println(str); System.out.println(stack); //遍历操作 for (String s : stack) { System.out.println(s); } System.out.println(stack); //用pop方法遍历栈 while (stack.size() > 0) { String s = stack.pop(); System.out.println(s); } System.out.println(stack); } }

Queue队列

/** * 队列 * 队列是经典的数据结构之一 * 队列可以保存一组元素,但是存取元素必须遵循先进先出。 * java.util.Queue 接口 * Queue继承自Collection,队列定义了存取元素的相关方法。 * 常用实现类:java.util.LinkedList */ public class QueueTest { public static void main(String[] args) { Queue<String> queue = new LinkedList<String>(); //入队操作,将元素添加到队列末尾 queue.offer("one"); queue.offer("two"); queue.offer("three"); queue.offer("four"); System.out.println(queue); /* poll 出队操作 * 获取并删除当前队列的队首元素 */ String str = queue.poll(); System.out.println(str); System.out.println(queue); /* * peek 引用队首元素 * 获取队首元素,但是不做删除操作 */ str = queue.peek(); System.out.println(str); System.out.println(queue); /* * 遍历队列 * 使用迭代器遍历后,元素还是在队列当中的。 */ for (String s : queue) { System.out.println(s); } System.out.println(queue); } }

LinkedList

java.util包下的类 底层使用双向链表的数据结果形式存储 适合插入删除,不适合遍历 构造方法:无参数的构造方法,传递一个Collection参数的构造方法

最新回复(0)