欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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);
		
	}
}

JAVA基础(第十九天 ArrayList和LinkedList)


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());
	}
}

JAVA基础(第十九天 ArrayList和LinkedList)


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);
	}

}

JAVA基础(第十九天 ArrayList和LinkedList)