zoukankan      html  css  js  c++  java
  • Java数据结构

      1 import java.util.Arrays;
      2 
      3 class MyArray {
      4     public MyArray() {
      5         elements = new int[0];
      6     }
      7     
      8     // 获取数组长度的方法
      9     public int size() {
     10         return elements.length;
     11     }
     12 
     13     // 往数组的末尾添加一个元素
     14     public void add(int element) {
     15         // 创建一个新的数组
     16         int[] newArr = new int[elements.length+1];
     17         // 把原数组中的元素复制到新数组中
     18         for (int i = 0; i < elements.length; i++) {
     19             newArr[i] = elements[i];
     20         }
     21         // 把要添加的元素放入新数组中
     22         newArr[elements.length] = element;
     23         // 使用新数组替换旧数组
     24         elements = newArr;
     25     }
     26 
     27     // 打印所有元素到控制台
     28     public void show() {
     29         System.out.println(Arrays.toString(elements));
     30     }
     31 
     32     // 删除数组中的元素
     33     public void delete(int index) {
     34         // 判断下标是否越界
     35         if (index < 0 || index >= elements.length) {
     36             throw new RuntimeException("下标越界");
     37         }
     38         // 创建一个新的数组,长度为原数组的长度-1
     39         int[] newArr = new int[elements.length-1];
     40         // 复制原有数据到新数组;
     41         for (int i = 0; i < newArr.length; i++) {
     42             // 想要删除的元素前面的元素
     43             if (i < index) {
     44                 newArr[i] = elements[i];
     45                 // 想要删除的元素后面的元素
     46             } else {
     47                 newArr[i] = elements[i+1];
     48             }
     49             // 新数组替换旧数组
     50             elements = newArr;
     51         }
     52     }
     53 
     54     //获取某个元素
     55     public int get(int index) {
     56         // 判断下标是否越界
     57         if (index < 0 || index >= elements.length) {
     58             throw new RuntimeException("下标越界");
     59         }
     60         return elements[index];
     61     }
     62 
     63     // 插入一个元素到某个位置
     64     public void insert(int index, int element) {
     65         // 创建一个新的数组
     66         int[] newArr = new int[elements.length+1];
     67         // 将原数组中的元素放入新数组中
     68         for (int i = 0; i < elements.length; i++) {
     69             // 目标位置之前的元素
     70             if (i < index) {
     71                 newArr[i] = elements[i];
     72                 // 目标位置之后的元素
     73             } else {
     74                 newArr[i+1] = elements[i];
     75             }
     76         }
     77         // 插入新的元素
     78         newArr[index] = element;
     79         // 新数组替换旧数组
     80         elements = newArr;
     81     }
     82 
     83     //替换指定位置的元素
     84     public void set(int index, int element) {
     85         // 判断下标是否越界
     86         if (index < 0 || index >= elements.length) {
     87             throw new RuntimeException("下标越界");
     88         }
     89         elements[index] = element;
     90     }
     91 
     92     // 用于存储数据的数组
     93     private int[] elements;
     94 
     95 }
     96 
     97 public class Main {
     98     public static void main(String[] args) {
     99         // 创建一个可变的数组
    100         MyArray ma = new MyArray();
    101         
    102         // 获取长度
    103         int size = ma.size();
    104         System.out.println(size);
    105         
    106         // 往可变数组中添加一个元素
    107         ma.add(99);
    108         ma.add(98);
    109 
    110         // 显示可变数组中的所有元素到控制台
    111         ma.show();
    112         
    113         // 删除某个元素
    114         ma.delete(0);
    115 
    116         // 获取某个元素
    117         System.out.println(ma.get(0));
    118 
    119         ma.add(96);
    120         // 插入一个新的元素到指定位置
    121         ma.insert(1, 97);
    122         ma.show();
    123 
    124         // 替换指定位置的元素
    125         ma.set(-1, 99);
    126         ma.show();
    127     }
    128 }
  • 相关阅读:
    LINUX重启MYSQL的命令
    如何在linux下实现mysql数据库每天自动备份
    mysql 2013错误解决
    mysql按年度、季度、月度、周、日统计查询的sql语句
    MySQL 时间戳(Timestamp)函数
    jQuery 选择器大全总结
    使用Git的Push出现rejected
    js实现分页的几个源码,看完基本就懂了
    Get,Post请求中文乱码问题有效解决方法
    web应用中文乱码问题的原因分析
  • 原文地址:https://www.cnblogs.com/GjqDream/p/11572377.html
Copyright © 2011-2022 走看看