Java学习第四十一天<Vector基本介绍><Vector VS ArrayList><Vector断点分析><LinkedList双向链表><LinkedList CRUD 断点>

本文将深入解析Vector和ArrayList在Java中的使用,包括它们的底层实现、添加、删除和修改操作,同时对比LinkedList的特性和CRUD操作。通过实例演示,揭示了这些数据结构在不同场景下的优势和适用性。
摘要由CSDN通过智能技术生成

Vector基本介绍

 

Vector VS ArrayList

 

Vector底层原码断点分析

package chapter17.List;
​
import java.util.Vector;
​
public class Vector01 {
    public static void main(String[] args) {
        Vector vector = new Vector();
        for (int i = 0; i <10 ; i++) {
            vector.add(i);
        }
        vector.add(6);
        System.out.println(vector);
    }
}

LinkedList双向链表

 

package chapter17.List;
​
public class LinkedList01 {
    public static void main(String[] args) {
        //模拟一个简单双向链表
        Node xx = new Node("xx");
        Node yy = new Node("yy");
        Node zz = new Node("zz");
​
        //连接三个结点,形成双向链表
        xx.next=yy;
        yy.next=zz;
        zz.pre=yy;
        yy.pre=xx;
​
        Node first = xx;//头结点
        Node last = zz; //尾结点
​
        while (true){
            if (first==null){
                break;
            }
            System.out.println(first);
            first=first.next; //last=last.pre 从尾到头
        }
​
        //演示链表添加对象/数据 很方便   在yy和zz中插入smith
        //1.创建一个Node结点,name是smith
        Node smith = new Node("smith");
        smith.next=zz;
        smith.pre=yy;
        zz.pre=smith;
        yy.next=smith;
​
         first = xx;//重新指一下
        System.out.println("======插入后======");
        while (true){
            if (first==null){
                break;
            }
            System.out.println(first);
            first=first.next; //last=last.pre 从尾到头
        }
    }
}
class Node{//定义一个Node类,Node对象 表示双向链表的一个结点
    public Object item;//真正存放数据
    public Node next;//指向下一个结点
    public Node pre;//指向前一个结点
    public Node(Object name){
        this.item=name;
    }
    public String toString(){
        return "Node name"+item;
    }
}

LinkedList CRUD 断点原码分析

package chapter17.List;
​
import java.util.Iterator;
import java.util.LinkedList;
//原码断点分析
public class LinkedListCRUD {
    public static void main(String[] args) {
        LinkedList linkedList = new LinkedList();
        linkedList.add(1);
        linkedList.add(2);
        linkedList.add(3);
        System.out.println(linkedList);//[1, 2, 3]
​
        linkedList.remove();//默认删除第一个
        System.out.println(linkedList);//[2, 3]
​
        linkedList.set(1,999);
        System.out.println(linkedList);//修改结点对象  [2, 999]
​
        System.out.println(linkedList.get(1));//得到对象 999
​
        //LinkedList实现List接口 遍历方法
        Iterator iterator = linkedList.iterator();//迭代器遍历
        while (iterator.hasNext()) {
            Object next =  iterator.next();
            System.out.println("next="+next);//next=2 next=999
​
        }
        for (Object o :linkedList) {//增强for遍历
            System.out.println(o);//2 999
        }
        for (int i = 0; i < linkedList.size() ; i++) {//传统遍历
            System.out.println(linkedList.get(i));
        }
​
    }
}

ArrayList Vs LinkedList

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值