JAVA基础(第十九天 ArrayList和LinkedList)
程序员文章站
2024-03-23 12:10:28
...
ArrayList和LinkedList
package com.wdzl.demo02;
import java.util.ArrayList;
import java.util.Deque;
import java.util.LinkedList;
/**
* ArrayList和LinkedList
* 1.ArrayList 用的动态数组 LinkedList 双向链表
* 2.ArrayList查询速度快,地址连续的
* LinkedList 查询效率低,地址不连续
* 3.ArrayList 增删效率低,动态移动
* LinkedList 增删效率高,不需要移动,修改地址
*
*/
public class TestLinkedList {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<String>();
//LinkedList的添加元素方法(双向链表)
list.add("AAA");
list.add("CCC");
list.add("BBB");
String val = list.get(0);
System.out.println("元素为:"+val);
//查看list是否为空
System.out.println("list是否为空:"+list.isEmpty());
System.out.println("list的实际大小:"+list.size());
//查看list是否包含AAA元素
System.out.println("list是否包含AAA:"+list.contains("AAA"));
//查看list最后一个索引位置是否为CCCC
System.out.println("list最后一个索引是否为CCCC:"+list.lastIndexOf("CCCC"));
System.out.println("*********************");
//给list的第一个元素添加xxx
list.addFirst("XXX");
//给list的最后一个元素添加yyy
list.addLast("YYY");
System.out.println(list);
//消除list的第一个元素
list.removeFirst();
System.out.println(list);
System.out.println("**********************");
System.out.println("*********ArrayList************");
//ArrayList(动态数组)
ArrayList<String> arraylist = new ArrayList<String>();
arraylist.add("UUU");
arraylist.add("AAA");
arraylist.add("CCC");
arraylist.add("BBB");
String val1 = arraylist.get(0);
System.out.println("元素为:"+val1);
//查看arraylist是否为空
System.out.println("arraylist是否为空:"+arraylist.isEmpty());
System.out.println("arraylist的实际大小:"+arraylist.size());
//查看arraylist是否包含AAA元素
System.out.println("arraylist是否包含AAA:"+arraylist.contains("AAA"));
//查看arraylist最后一个索引位置是否为CCCC
System.out.println("arraylist最后一个索引是否为CCCC:"+arraylist.lastIndexOf("CCCC"));
System.out.println(arraylist);
}
}
LinkedList的 栈和队列
package com.wdzl.demo02;
import java.util.LinkedList;
public class TestLinkedList2 {
public static void main(String[] args) {
//栈 FILO
LinkedList<Integer> list = new LinkedList<Integer>();
list.push(3);
list.push(4);
list.push(5);
System.out.println(list.pop());
System.out.println(list.pop());
System.out.println(list.pop());
System.out.println(list);
System.out.println("------队列------");
list.offer(3);
list.offer(4);
list.offer(5);
System.out.println(list.poll());
System.out.println(list.poll());
System.out.println(list.poll());
}
}
ArrayList详细介绍
package com.wdzl.demo02;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 数组
* Object[] o = new Object[1000000];
* 集合
* Collection
* List Set
* ArrayList LinkedList
* HashSet TreeSet
*
*/
public class TestList {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(3);
list.add(4);
list.add(5);
list.add(6);
//按内容对象移除
// Integer s = 5;
// list.remove(s);
// s = 5;
// list.remove(s);//按下标移除
list.remove(0);
list.remove(1);
System.out.println(list);
test(args);
}
/**
* list的遍历方式
* @param args
*/
public static void test1(String[] args) {
//将数组转为List
List<Integer> list = Arrays.asList(3,6,2,6,8,2);
//1
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
//2
System.out.println("==============");
for (Integer integer : list) {
System.out.println(integer);
}
System.out.println("-------------");
//3 jdk8开始 新特性
list.forEach(s -> System.out.println(s));
}
public static void test(String[] args) {
//泛型
//集合列表中 只能接收String类型元素
ArrayList<String> list = new ArrayList<>();
//放入元素
list.add("AAA");
list.add("CCC");
list.add("DDD");
list.add("DDD");
//放入时,类型检查
// list.add(5);
// list.add(true);
// list.add(new Object());
//取值
String i = list.get(1);
System.out.println(i);
//遍历list
for (int j = 0; j < list.size(); j++) {
String v = list.get(j);
System.out.println(v);
}
System.out.println("======");
//打印list
System.out.println(list);
System.out.println(list.isEmpty());
System.out.println(list.contains("AAA"));
//截取
List<String> sub = list.subList(1, 3);
System.out.println(sub);
//找不到返回-1 否则 返回下标
int index = list.indexOf("DDDD");
System.out.println("index:"+index);
System.out.println(list);
//通过下标移除
// list.remove(2);
//通过内容对象移除
list.remove("DDD");
//清空所有内容对象
// list.clear();
list.set(2, "XXX");
System.out.println(list);
}
}
上一篇: 如何利用NLog输出结构化日志,并在Kibana优雅分析日志?
下一篇: JVM面试题这一篇就够了
推荐阅读
-
JAVA基础(第十九天 ArrayList和LinkedList)
-
Java中ArrayList和LinkedList的遍历与性能分析
-
Java中ArrayList和LinkedList的遍历与性能分析
-
Java中ArrayList和LinkedList之间的区别_动力节点Java学院整理
-
Java中ArrayList和LinkedList之间的区别_动力节点Java学院整理
-
java 集合之实现类ArrayList和LinkedList的方法
-
JAVA LinkedList和ArrayList的使用及性能分析
-
JAVA LinkedList和ArrayList的使用及性能分析
-
linkedlist和arraylist的区别是什么(java的四种引用关系从强到弱)
-
linkedlist和arraylist的区别是什么(java的四种引用关系从强到弱)