亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java數據結構和算法中數組的示例分析

發布時間:2021-08-20 09:56:24 來源:億速云 閱讀:116 作者:小新 欄目:編程語言

小編給大家分享一下java數據結構和算法中數組的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

我隨意借了一張圖,所謂的數據結構就是下面這些

java數據結構和算法中數組的示例分析

1.數組的基本用法

對于數組應該很熟悉了,最開始學完java八種基本類型之后下一個就是學的數組,數組最大的特點就是除了Object數組之外,其他的數組只能存放同一種數據類型,而且我們一開始指定數組就要指定確定的長度,一旦插入的數據超過這個長度,就會報錯,其實就是因為數組的缺點太大,于是就根據數組的基礎設計出來了集合,集合后面說。。

兩種用法,以Object數組為例,這個數組可以隨意放什么東西,然后用Arrays.toString(xxx)可以打印數組中的所有元素;

  java數據結構和算法中數組的示例分析

任何數據類型都有與之對應的數組,比如int[],String[],boolean[]等等

2.簡單實現對數組的增刪改查

·用數組的比較麻煩,還要一個一個慢慢賦值,對我們操作數據也不是很方便,那我們就隨意實現一下我們自己的數組最簡單的增刪改查吧!

package com.wyq.thread;

public class MyArray {
  private int[] arr;
  //數組中當前存有數據的個數,也叫做數組的有效長度
  private int eles;
  
  //數組中可容納最大的數量
  private int length;
  
  //注意這兩個構造器,在無參構造中調用有參構造并設置默認的數組長度
  public MyArray() {
    this(10);
  }
  public MyArray(int length){
    eles = 0;
    this.length = length;
    arr = new int[length];
  }
  //獲取當前數組存的實際數據的數量
  public int size(){
    return eles;
  }
  //展示當前數組中的數據
  public void show(){
    System.out.print("數組中所有的數分別為:");
    for (int i = 0; i < arr.length; i++) {
      System.out.print(arr[i]+" ");
    }
    System.out.println();
  }
  
  //向數組中添加數據
  public boolean add(int num){
    //假如當前數組已經滿了還往里面添加數據,那就拋出異常并返回false,后續操作還是會繼續
    //這里就沒怎么考慮給這個數組擴容
    if (length==eles) {
      try {
        throw new Exception("不好意思,數組已經滿了,你還是別存了!");
      } catch (Exception e) {
        e.printStackTrace();
      }
      return false;
    }else{
      arr[eles] = num;
      eles++;
      return true;
    }
  }
  //在數組中查有沒有一個xxx數據,有就返回其索引值,沒有的話就返回null,其實也可以捕捉異常,可以自己試試
  public Integer find(int value){
    if (arr!=null) {
      for (int i = 0; i < arr.length; i++) {
        if (arr[i]==value) {
          return i;
        }
      }
    }
    return null;
  }
  //刪除數組中的xx數據,這里會進行很多的判斷,可以說這個方法是數組中最麻煩的方法了
  //1.先調用查詢方法看數組中有沒有我們要刪除的數據,沒有直接返回-1,有的話就進入第二步
  //2.如果這個要刪除的數據在數組最后,那就直接將數組有效長度減一即可,如果不在最后,進入第三步
  //3.一個數組要刪除中間的個位置,不可能直接將這個數據復制為0或者null,我們只需要把這個位置的后面所有數據都向前
  //  移動一個位置即可,這時數組的最后一個位置就空出來了,我們再把數組的有效長度減一就行了
  public int delete(int value){
    Integer find = find(value);
    if (find!=null) {
      if (find==eles-1) {
        eles--;
      }else{
        for (int i = find; i < arr.length-1; i++) {
          if (arr[i]==value) {
            arr[i]=arr[i+1];
          }
        }
        eles--;
      }
      
    }
    return -1;  
    
  }
  //更新數據,先調用查詢方法找到這個數據所在位置,然后直接賦值即可
  public boolean update(int index,int value){
    Integer find = find(index);
    if (find!=null) {
      arr[index]=value;
      return true;
    }
    return false;
  }


  public static void main(String[] args) {
    //由于沒有指定數組長度,就會用默認的10
    MyArray array = new MyArray();
    
    for (int i = 0; i < 10; i++) {
      array.add(i);
    }
    //注意,此時由于數組滿了我們還添加數據,就會報異常
    array.add(222);
    array.show();
    array.delete(5);
    System.out.println("刪除數據后數組的實際大小:"+array.size());
    array.add(100);
    array.update(0, 10);
    array.find(9);
    array.show();
    
  }
}

java數據結構和算法中數組的示例分析

以上是“java數據結構和算法中數組的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

偏关县| 湖口县| 清原| 瑞丽市| 青阳县| 阿尔山市| 林周县| 舒城县| 红桥区| 永德县| 邮箱| 宿松县| 灌阳县| 乌什县| 延吉市| 板桥市| 运城市| 江源县| 新巴尔虎右旗| 崇阳县| 新安县| 襄城县| 姜堰市| 华安县| 读书| 霸州市| 镇安县| 巴塘县| 信宜市| 洪泽县| 和静县| 宣城市| 名山县| 伊春市| 盐边县| 左云县| 泗水县| 赫章县| 博客| 阿尔山市| 全州县|