国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java知識(shí)點(diǎn)總結(jié) (數(shù)組)

terro / 1411人閱讀

Java知識(shí)點(diǎn)總結(jié) (數(shù)組)

@(Java知識(shí)點(diǎn)總結(jié))[Java, Java數(shù)組]

[toc]

一維數(shù)組 定義

用于存儲(chǔ)同一類型數(shù)據(jù)的一個(gè)容器

可以對(duì)該容器中的數(shù)據(jù)從0開(kāi)始進(jìn)行編號(hào)

數(shù)組是對(duì)象

聲明數(shù)組

元素類型 [ ] 變量名 等價(jià) 元素類型 變量名 [ ]

元素類型 [ ] 變量名 = new 元素類型 [元素的個(gè)數(shù)];

元素類型 [ ] 變量名 = {元素1,元素2...};

元素類型 [ ] 變量名 = new 元素類型[ ]{元素1,元素2...};

數(shù)組元素的個(gè)數(shù):__length__ 下標(biāo)運(yùn)算:[ ]

數(shù)組的元素是通過(guò)索引訪問(wèn)的。數(shù)組索引從 0 開(kāi)始,所以索引值從 0 到 length-1.

場(chǎng)景異常

ArrayIndexOutOfBoundsException(數(shù)組下標(biāo)越界異常)

二維數(shù)組 二維數(shù)組可以看成以數(shù)組為元素的數(shù)組,例如:

Java中多維數(shù)組的聲明和初始化應(yīng)從高維到低維的順序進(jìn)行,例如:

需要兩次下標(biāo)運(yùn)算才能取出元素

應(yīng)用:表格、矩陣、棋盤、地圖 數(shù)組相關(guān)算法 數(shù)組拷貝
import java.util.Arrays;
 
/**
 * 數(shù)組拷貝
 * @author Administrator
 *
 */
public class ArrayTest2 {
  
  //這樣拷貝數(shù)組間沒(méi)有隔離性
  public static void test1(){
   String[] ss1 = {"1","2","3"};
   String[] ss2 = ss1; //把ss1對(duì)數(shù)組的引用傳遞給變量ss2,兩個(gè)變量指向的是同一個(gè)數(shù)組
   
   ss2[0] = "張三";
   System.out.println(ss1[0]); //張三
  }
  
  public static void test2(){
   String[] ss1 = {"1","2","3"};
   String[] ss2 = new String[ss1.length];//通過(guò)new關(guān)鍵字在內(nèi)存中開(kāi)辟一塊空間,ss2指向的是新的數(shù)組對(duì)象
   
   for (int i = 0; i < ss2.length; i++) {
     ss2[i] = ss1[i];
   }
   
   ss2[0] = "張三";
   System.out.println(ss1[0]); //1
  }
  
  //API提供的方式,底層用C++寫(xiě)的,所以速度很快,比f(wàn)or循環(huán)的效率高
  public static void test3(){
   String[] ss1 = {"1","2","3"};
   String[] ss2 = new String[ss1.length];
   System.arraycopy (ss1, 0, ss2, 0, ss1.length);
   
   System.out.println(Arrays.toString(ss2)); // [1, 2, 3]
  }
  
  public static void test4(){
   String[] ss1 = {"1","2","3"};
   String[] ss2 = Arrays.copyOf (ss1, ss1.length);
   
   System.out.println(Arrays.toString(ss2)); //[1, 2, 3]
  }
  
  public static void main(String[] args) {
   test1();
   test2();
   test3();
   test4();
  }
 
}
數(shù)組擴(kuò)容
import java.util.Arrays;
 
/**
 * 數(shù)組擴(kuò)容
 * @author Administrator
 *
 */
public class ArrayTest3 {
  
  public static void test1(){
   String[] arry1 = {"張三","李四","王五"};
   arry1 = Arrays.copyOf (arry1, arry1.length+2);
   
   System.out.println(arry1.length); //5
   System.out.println(Arrays.toString(arry1)); //[張三, 李四, 王五, null, null]
  }
  
  
  public static void test2(){
   String str = "統(tǒng)計(jì)一個(gè)字符在字符串中的所有位置";
   //int[] arry = countAll(str, "字"); // [4, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
   int[] arry = countAll2(str, "字"); // [4, 7]
   System.out.println(Arrays.toString(arry));
   
  }
  
  //浪費(fèi)內(nèi)存
  private static int[] countAll(String str,char ch){
   char[] charArray = str.toCharArray();
   int[] array = new int[charArray.length];
   int index = 0;
   for (int i = 0; i < charArray.length; i++) {
     if (ch == charArray[i]) {
      array[index] = i;
      index ++;
     }
   }
   
   return array;
  }
  
  private static int[] countAll2(String str,char ch){
   int[] array = {}; //創(chuàng)建一個(gè)空數(shù)組
   for (int i = 0; i < str.length(); i++) {
     if (ch == str.charAt(i)) {
      array = Arrays.copyOf(array, array.length+1);
      array[array.length-1] = i;
     }
   }
   return array;
  }
  
  public static void main(String[] args) {
   test1();
   test2();
  }
 
}
數(shù)組排序
import java.util.Arrays;
/**
 * 排序
 * @author Administrator
 *
 */
public class ArrayTest4 {
 
  // java 提供的排序方法
  public static void arraySort(int[] array) {
   Arrays.sort(array);
   System.out.println(Arrays.toString(array));
  }
 
  // 冒泡排序,前一個(gè)數(shù)與后一個(gè)數(shù)進(jìn)行比較
  public static void bubbleSort(int[] array) {
   int temp = 0;
   for (int i = 0; i < array.length - 1; i++) {
     for (int j = i + 1; j < array.length; j++) {
      if (array[j] < array[i]) {
        temp = array[i];
        array[i] = array[j];
        array[j] = temp;
      }
     }
   }
   System.out.println(Arrays.toString(array));
  }
 
  // 選擇排序
  public static void selectSort(int[] array) {
   int temp = 0;
   for (int i = 0; i < array.length - 1; i++) {
     int min = i;
     for (int j = i + 1; j < array.length; j++) {
      if (array[min] > array[j]) {
        min = j;
      }
     }
     if (min != i) {
      temp = array[i];
      array[i] = array[min];
      array[min] = temp;
     }
   }
   System.out.println(Arrays.toString(array));
  }
 
  // 插入排序
  public static void insertSort(int[] array) {
   int temp = 0;
   for (int i = 1; i < array.length; i++) {
     for (int j = i; j > 0; j--) {
      if (array[j]
數(shù)組查找
import java.util.Arrays;
 
/**
 * 無(wú)序數(shù)組 - 順序查找
 * 有序數(shù)組 - 二分查找
 * @author Administrator
 *
 */
public class ArrayTest5 {
  
  //有序數(shù)組,二分查找
  public static int binarySerarch(int[] array ,int num){
   int low = 0;
   int high = array.length-1;
   
   while(low <= high){
     int mid = (low+high)/2;
     
     if (num>array[mid]) {
      low = mid + 1;
     }else if (num
Arrays工具類

java.util.Arrays類能方便地操作數(shù)組,它提供的所有方法都是靜態(tài)的

import java.util.Arrays;
import java.util.List;
 
public class ArrayTest6 {
  public static void main(String[] args) {
   int[] nums = new int[10];
   
   //填充數(shù)組
   Arrays.fill (nums, 3);
   System.out.println(Arrays.toString(nums)); //[3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
   
   //將第4個(gè)元素到低8個(gè)元素的值,賦值為0
   Arrays.fill (nums,3,8,0);
   System.out.println(Arrays.toString(nums)); //[3, 3, 3, 0, 0, 0, 0, 0, 3, 3]
   
   // 將第3到第5之間的元素進(jìn)行排序
   char[] ch = {"a","d","f","c","j","e"};
   Arrays.sort (ch,2,5);
   System.out.println(Arrays.toString(ch)); //[a, d, c, f, j, e]
   
   // 比較元素是否相等
   char[] ch2 = ch.clone();
   System.out.println(Arrays.equals (ch, ch2)); //true 數(shù)組元素內(nèi)容相等
   System.out.println(ch == ch2); //false 不是同一個(gè)對(duì)象
   
   //二分查找
   Arrays.sort(ch); //必須先排好序,否則結(jié)果不正確
   int index = Arrays.binarySearch (ch, "c");
   System.out.println(index);  // 1
   
   //數(shù)組轉(zhuǎn)為list集合
   int[] array1 = {34,21,56,22,1,7,8,3,0,21};
   List list1 = Arrays.asList(array1);
   System.out.println(list1.size()); //1
   
   Integer[] array2 = {34,21,56,22,1,7,8,3,0,21};
   List list2 = Arrays.asList (array2);
   System.out.println(list2.size()); //10
   for (Integer i : list2) {
     System.out.print(i+","); // 34,21,56,22,1,7,8,3,0,21,
   }
   
  }
}


數(shù)組內(nèi)存
int  score[];  //聲明一個(gè)整數(shù)數(shù)組score
此時(shí)這個(gè)變量并沒(méi)有包含任何內(nèi)容,編譯器僅僅會(huì)分配一塊內(nèi)存給它,用來(lái)保存指向數(shù)組實(shí)體的地址,如圖:

聲明之后,接著要進(jìn)行內(nèi)存分配的操作。這一行代碼會(huì)開(kāi)辟3個(gè)可供保存整數(shù)的內(nèi)存空間,并把此內(nèi)存空間的參考地址賦給score變量。如圖:

二維數(shù)組內(nèi)存:

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/69131.html

相關(guān)文章

  • 《十萬(wàn)字Java入門練習(xí)100例》1-10例——紙上得來(lái)終覺(jué)淺,絕知此事要躬行

    摘要:代碼實(shí)現(xiàn)在控制臺(tái)打印總結(jié)本篇文章帶大家搭好環(huán)境,并體驗(yàn)了控制臺(tái)打印。輸出結(jié)果總結(jié)熟練掌握取余和整除運(yùn)算,大有作用。終止本次循環(huán),繼續(xù)執(zhí)行下一次循環(huán)。 ?本文收錄...

    keithyau 評(píng)論0 收藏0
  • Java識(shí)點(diǎn)總結(jié)Java容器-Vector)

    摘要:知識(shí)點(diǎn)總結(jié)容器知識(shí)點(diǎn)總結(jié)容器與相似,但是是同步的。所以說(shuō)是線程安全的動(dòng)態(tài)數(shù)組。如果集合中的元素的數(shù)目大于目前集合數(shù)組的長(zhǎng)度時(shí),增長(zhǎng)率為目前數(shù)組長(zhǎng)度的而增長(zhǎng)率為目前數(shù)組長(zhǎng)度的如過(guò)在集合中使用數(shù)據(jù)量比較大的數(shù)據(jù),用有一定的優(yōu)勢(shì)。 Java知識(shí)點(diǎn)總結(jié)(Java容器-Vector) @(Java知識(shí)點(diǎn)總結(jié))[Java, Java容器, JavaCollection, JavaList] Vec...

    mgckid 評(píng)論0 收藏0
  • Java識(shí)點(diǎn)總結(jié)JavaIO-字節(jié)流)

    摘要:知識(shí)點(diǎn)總結(jié)字節(jié)流知識(shí)點(diǎn)總結(jié)字節(jié)流在程序中所有的數(shù)據(jù)都是以流的方式進(jìn)行傳輸或保存的,程序需要數(shù)據(jù)時(shí)要使用輸入流讀取數(shù)據(jù),而當(dāng)程序需要將一些數(shù)據(jù)保存起來(lái)時(shí),就要使用輸出流。字節(jié)流主要操作類型數(shù)據(jù),以數(shù)組為準(zhǔn),主要操作類是類和類。 Java知識(shí)點(diǎn)總結(jié)(JavaIO-字節(jié)流) @(Java知識(shí)點(diǎn)總結(jié))[Java, JavaIO] [toc] 字節(jié)流 在程序中所有的數(shù)據(jù)都是以流的方式進(jìn)行傳輸或保...

    BigTomato 評(píng)論0 收藏0
  • Java識(shí)點(diǎn)總結(jié)Java容器-Collection)

    摘要:知識(shí)點(diǎn)總結(jié)容器知識(shí)點(diǎn)總結(jié)容器函數(shù)庫(kù)是包下的一些接口和類,類是用來(lái)產(chǎn)生對(duì)象存放數(shù)據(jù)用的,而接口是訪問(wèn)數(shù)據(jù)的方式。底層也是數(shù)組實(shí)現(xiàn),線程安全,效率低效率高,線程不安全。 Java知識(shí)點(diǎn)總結(jié)(Java容器-Collection) @(Java知識(shí)點(diǎn)總結(jié))[Java, Java容器, JavaCollection] [toc] Collection Collection函數(shù)庫(kù)是java.uti...

    GeekGhc 評(píng)論0 收藏0
  • Java識(shí)點(diǎn)總結(jié)Java容器-ArrayList)

    摘要:知識(shí)點(diǎn)總結(jié)容器知識(shí)點(diǎn)總結(jié)容器底層實(shí)現(xiàn)是數(shù)組,訪問(wèn)元素效率高查詢快,插入修改刪除元素慢與相比,它效率高,但線程不安全。 Java知識(shí)點(diǎn)總結(jié)(Java容器-ArrayList) @(Java知識(shí)點(diǎn)總結(jié))[Java, Java容器, JavaCollection, JavaList] ArrayList 底層實(shí)現(xiàn)是數(shù)組,訪問(wèn)元素效率高 (查詢快,插入、修改、刪除元素慢) 與LinkedLis...

    xzavier 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<