集合Collection ----List集合
Collection集合体系的特点:
set系列集合:添加的元素是 无序,不重复,无索引的
----HashSet: 无序,不重复,无索引
----LinkedHashSet: 有序,不重复,无索引
List系列集合:添加的元素是 有序,可重复,有索引的
----LinkedList: 有序,可重复,有索引的
----ArrayList : 有序,可重复,有索引
----Vector:
Arraylist:存储是数组结构,元素增删慢,查找快,线程不安全,效率高
- `public void add(int index, E element)`: 将指定的元素,添加到该集合中的指定位置上。 (在索引前面插入)
- `public E get(int index)`:返回集合中指定位置的元素。
- `public E remove(int index)`: 移除列表中指定位置的元素, 返回的是被移除的元素。
- `public E set(int index, E element)`:用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
import java.util.ArrayList; import java.util.List; public class ListDemo1 { public static void main(String[] args) { List<String> lists=new ArrayList<>();//Arraylist几乎没有增加功能,所以用多态 lists.add("sfdsfd"); lists.add("zyl" ); lists.add("yuyu"); lists.add("huwof"); System.out.println(lists);// [sfdsfd, zyl, yuyu, huwof] lists.add(1,"yyyy"); System.out.println(lists);// [sfdsfd, yyyy, zyl, yuyu, huwof] System.out.println(lists.get(2));// zyl System.out.println(lists.remove(3));// yuyu System.out.println(lists);// [sfdsfd, yyyy, zyl, huwof] lists.set(0,"ppppp"); System.out.println(lists);// [ppppp, yyyy, zyl, huwof] } }
LinkedList:存储的结构是链表结构(双向链表),方便元素添加、删除,线程不安全,效率高
- `public void addFirst(E e)`:将指定元素插入此列表的开头。
- `public void addLast(E e)`:将指定元素添加到此列表的结尾。
- `public E getFirst()`:返回此列表的第一个元素。
- `public E getLast()`:返回此列表的最后一个元素。
- `public E removeFirst()`:移除并返回此列表的第一个元素。
- `public E removeLast()`:移除并返回此列表的最后一个元素。
- `public E pop()`:从此列表所表示的堆栈处弹出一个元素。
- `public void push(E e)`:将元素推入此列表所表示的堆栈。
- `public boolean isEmpty()`:如果列表不包含元素,则返回true。
import java.util.LinkedList; public class LinkedListDemo1 { public static void main(String[] args) { LinkedList<String> stack = new LinkedList<>(); stack.addFirst("aaaa"); stack.addFirst("bbbb"); stack.addFirst("cccc"); System.out.println(stack); //[cccc, bbbb, aaaa] stack.add("dddd"); System.out.println(stack); //[cccc, bbbb, aaaa, dddd] System.out.println(stack.remove("bbbb")); //true System.out.println(stack.getFirst()); //cccc LinkedList<String> stack1 = new LinkedList<>(); stack1.push("111"); //stack.push() --> stack.getFirst() stack1.push("222"); stack1.push("333"); System.out.println(stack1); // [333, 222, 111] System.out.println(stack1.pop()); //333 stack.pop() -->stack.removeFirst() System.out.println(stack1); // [222, 111] } }
Vector:底层是数组,查询快,增添慢,线程安全,效率低
Vector的特有功能:
1、添加功能:
void addElement(Object obj) 将指定的组件添加到此向量的末尾,将其大小增加1。
2、获取功能:
Object elementAt(int index) 返回指定索引处的元素 --get()
Enumeration elements() 返回此向量的组件的容器。--list.iterator()
boolean hasMoreElements() 测试此容器是否包含更多元素。 --hasNext()
E nextElement() 如果此容器对象至少有一个要提供的元素,则返回此容器的下一个元素。 --next()
import java.util.Enumeration; import java.util.Vector; public class VectorDemo1 { public static void main(String[] args) { Vector v=new Vector(); v.addElement(1111); v.addElement(2222); v.addElement(3333); System.out.println(v); // [1111, 2222, 3333] System.out.println(v.elementAt(1)); // 2222 Enumeration e = v.elements(); while (e.hasMoreElements()){ System.out.println(e.nextElement()); //1111 //2222 //3333 } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构