zoukankan      html  css  js  c++  java
  • 自定义Vector

     1 public class Demo {
     2     public static void main(String[] args) {
     3         MyVector vector = new MyVector();
     4         vector.add("123");
     5         vector.add("abc");
     6         vector.add("中国人");
     7         System.out.println("元素个数为:" + vector.size());
     8         for (int i = 0; i < vector.size(); i++) {
     9             System.out.println(vector.get(i));
    10         }
    11     }
    12 }
    13 class MyVector {
    14     // 火车头
    15     private Cell head;
    16     // 添加元素的方法
    17     public void add(String data) {
    18         // 1.创建车厢存放数据
    19         Cell cell = new Cell(data);
    20         // 2.查找尾车厢
    21         Cell tail = getTail();
    22         // 3.完成挂接
    23         // 如果查找到的尾车厢为null,则证明没有车厢,所以创建的车厢即为头车厢
    24         if (tail == null) {
    25             head = cell;
    26         } else {// 将创建的车厢的引用赋值给尾车厢的下一节车厢的引用
    27             tail.next = cell;
    28         }
    29     }
    30     // 查找尾车厢的方法
    31     private Cell getTail() {
    32         // 如果没有头车厢,则返回null
    33         if (head == null) {
    34             return null;
    35         }
    36         // 创建一个临时变量,用来存储头车厢的引用来完成尾车厢的查找
    37         Cell p = head;
    38         // 死循环进行查找,因为不知道到底有多少节车厢
    39         while (true) {
    40             // 如果车厢的下一节车厢为null,则表示找到了最后一节车厢,跳出循环
    41             if (p.next == null) {
    42                 break;
    43             }
    44             // 将下一节车厢的引用赋值给临时变量
    45             p = p.next;
    46         }
    47         // 返回尾车厢的引用
    48         return p;
    49     }
    50     // 计算车厢个数的方法
    51     public int size() {
    52         // 存储车厢的个数
    53         int size = 0;
    54         // 创建一个临时变量,用来存储头车厢的引用来完成尾车厢的查找
    55         Cell p = head;
    56         // 死循环进行查找,因为不知道到底有多少节车厢
    57         while (true) {
    58             // 如果车厢为null,则跳出循环
    59             if (p == null) {
    60                 break;
    61             }
    62             // 将下一节车厢的引用赋值给临时变量
    63             p = p.next;
    64             // 车厢个数自增
    65             size++;
    66         }
    67         // 返回车厢的个数
    68         return size;
    69     }
    70     // 获取元素的方法
    71     public String get(int index) {
    72         // 如果下标大于或等于数组的长度,则抛异常
    73         if (index >= size()) {
    74             throw new IndexOutOfBoundsException("下标越界");
    75         } else {
    76             // 创建一个临时变量,用来存储头车厢的引用来完成尾车厢的查找
    77             Cell p = head;
    78             // 循环遍历
    79             for (int i = 0; i < index; i++) {
    80                 // 将下一节车厢的引用赋值给临时变量
    81                 p = p.next;
    82             }
    83             // 返回找到车厢的数据
    84             return p.data;
    85         }
    86     }
    87     // 车厢
    88     class Cell {
    89         // 数据
    90         private String data;
    91         // 下一节车厢
    92         private Cell next;
    93         // 构造方法进行赋值
    94         public Cell(String data) {
    95             this.data = data;
    96         }
    97     }
    98 }

      执行结果:

    1 元素个数为:3
    2 123
    3 abc
    4 中国人
  • 相关阅读:
    Oracle最大连续访问天数
    oracle中MINUS
    sql中含有中文,export oralce编码格式的环境变量
    alternate_file_dcol_rollback
    oracle查询分区表
    hive创建表sql
    使用ANSI改变终端输出样式
    Golang中的空字符,似花不是花
    程序员必看 Linux 常用命令(重要)
    MongoDB入门介绍与案例分析
  • 原文地址:https://www.cnblogs.com/void0720/p/4778081.html
Copyright © 2011-2022 走看看