JAVA基础(第19天 List)

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

}

在这里插入图片描述


Stack

package com.wdzl.demo02;

import java.util.Stack;
//栈 后进先出
public class TestStack {
	public static void main(String[] args) {
		Stack<Integer> st = new Stack<Integer>();
		st.push(4);
		st.push(1);
		st.push(6);
		st.push(7);
		Integer i = st.pop();
		System.out.println(i);
		i = st.pop();
		System.out.println(i);
		i = st.pop();
		System.out.println(i);
	}
}

在这里插入图片描述


Vector

package com.wdzl.demo02;

import java.util.Vector;
/**
 * ArrayList 非同步的  不安全  效率高	单线程
 * Vector  同步的  安全  效率低    多线程
 * @author Administrator
 *
 */
public class TestVector {

	public static void main(String[] args) {
		Vector<String> v = new Vector<String>();
		v.add("AAA");
		v.add("AAA");
		v.add("AAA");
		v.add("BBB");
		v.add("CCC");
		System.out.println(v.get(1));
		System.out.println(v.get(3));
		System.out.println(v.get(4));
	}
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值