当前位置: 首页 > news >正文

java中的List,ArrayList和LinkedList集合

List集合:
void add(int index, E element)

Inserts the specified element at the specified position in this list (optional operation).

在此集合中的指定位置插入指定元素

E remove(int index)

Removes the element at the specified position in this list (optional operation).

删除指定索引处的元素,并返回被删除的元素 

E set(int index, E element)

Replaces the element at the specified position in this list with the specified element (optional operation).

修改指定索引处的元素 ,修改成功返回原来的数据

E get(int index)

Returns the element at the specified position in this list.

返回指定索引处的元素 

public class java {public static void main(String[] args) {List<String>list=new ArrayList<>();//List是一个抽象类//List 有序,可重复,有索引//addlist.add("java1");list.add("java2");list.add("java3");System.out.println(list);list.add(1,"java4");System.out.println(list);//[java1, java4, java2, java3]//removeSystem.out.println(list.remove(1));//java4//getSystem.out.println(list.get(0));//set,返回被修改的数据System.out.println(list.set(0, "java20"));//java1System.out.println(list);//[java20, java2, java3]}
}

 List集合的遍历:


1 for循环(List集合有索引)

2 迭代器

3 for循环增强

4 Lambda表达式

public class test {public static void main(String[] args) {List<String>list=new ArrayList<>();list.add("java1");list.add("java2");list.add("java3");System.out.println(list);//for循环for(int i=0;i<list.size();i++){System.out.println(list.get(i));}//迭代器Iterator<String> iterator = list.iterator();while(iterator.hasNext()){String next = iterator.next();System.out.println(next);}//增强for循环for(String s:list){System.out.println(s);}//Lambda表达式list.forEach(new Consumer<String>() {@Overridepublic void accept(String s) {System.out.println(s);}});list.forEach(s-> System.out.println(s));list.forEach(System.out::println);}
}

ArrayList集合的底层原理

基于数组实现的

特点:

查询数据快:(注意:是根据索引查询数据块)

删除效率低:可能需要把后面的大量数据往前移动

添加效率低:将后面大量数据后移动

ArrayList适合根据随机索引取数据(高效)或者数据不是很大的时候

不适合数据量大很大,又频繁的增删数据

LinkedList集合的底层逻辑

基于双向链表实现的

提点:

查询满,增删块,但是对首尾元素的增删改查的速度是极快的

public void addFirst(E e)

Inserts the specified element at the beginning of this list.

public void addLast(E e)

Appends the specified element to the end of this list. 

public E getFirst() 

Returns the first element in this list.

public E getLast()

Returns the last element in this list. 

public E removeFirst()

Removes and returns the first element from this list. 

从链表中返回第一个元素,并且删除

public E removeLast()

Removes and returns the last element from this list. 

 用于创建队列

public class test {public static void main(String[] args) {LinkedList <String>queue=new LinkedList<>();//入队queue.addLast("java1");queue.addLast("java2");//出队System.out.println(queue.removeFirst());//java1System.out.println(queue.removeFirst());//java2}
}

用于创建栈

public class test2 {public static void main(String[] args) {LinkedList<String>stack=new LinkedList<>();//入栈/*stack.addFirst("java1");stack.addFirst("java2");*/stack.push("java1");stack.push("java2");//出栈/* System.out.println(stack.removeFirst());//java2System.out.println(stack.removeFirst());//java1*/System.out.println(stack.pop());//java2System.out.println(stack.pop());//java1}
}

http://www.lryc.cn/news/339128.html

相关文章:

  • RESTful API与Web应用程序构建:原理与实践
  • 输了,腾讯golang一面凉了
  • 如何通过代码签名证书加强安全防护?
  • Docker速成:新手变专家!
  • numpy/arrayobject.h: No such file or directory
  • 前端大文件分块上传、断点续传
  • 使用新版FLIR (FLIR_ADAS_v2) 数据集创建yolo格式数据集(目标检测)
  • PHP发票查验接口未返回正确信息的原因、发票ocr识别接口
  • RA4000CE为汽车动力传动系统提供解决方案
  • 算法中的二阶差分
  • 第十五届蓝桥杯Java A组参赛总结
  • springCloudAlibaba集成seata实战(分布式事物详解)
  • VRTK/SteamVR手柄震动功能
  • MYSQL索引优化方法
  • 多模态 ——LLaVA 集成先进图像理解与自然语言交互GPT-4的大模型
  • 文献学习-33-一个用于生成手术视频摘要的python库
  • Unity Android 2021 Release-Notes
  • Java8新特性--lambda表达式
  • C/C++中设置随机数
  • ARM 三个小灯闪烁
  • 创业之路:从市场洞察到产品实现的全方位指南
  • C++ 红黑树模拟实现
  • 【数据结构】第三节:单链表
  • Python中操作Excel表对象并打包为脚本
  • Python学习笔记23 - 目录操作
  • 今天你学langchain了吗?
  • 插值算法-代码实现
  • 113.PyQt5_QtPrintSupport_打印操作
  • 在vue中使用bing map 的小demo
  • 基于uni-app的埋点sdk设计