最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java數(shù)組常見應(yīng)用詳解【創(chuàng)建、遍歷、排序、查找】

 更新時間:2020年02月13日 11:31:18   作者:扎心了,老鐵  
這篇文章主要介紹了Java數(shù)組常見應(yīng)用,結(jié)合實例形式詳細(xì)分析了java數(shù)組的基本定義、創(chuàng)建、遍歷、排序、查找等相關(guān)操作技巧與使用注意事項,需要的朋友可以參考下

本文實例講述了Java數(shù)組常見應(yīng)用。分享給大家供大家參考,具體如下:

雙重for循環(huán)

外循環(huán)控制行,內(nèi)循環(huán)控制列。

//乘法表
for(int i = 1; i <= 9; i++) {
  for(int j = 1; j <= i ;j++) {
   System.out.print(j+"*"+i+"="+(i*j)+"\t");
  }
  System.out.println();
}

DecimalFormat

#:一個數(shù)字

0:一個數(shù)字,不夠位數(shù)用0補位

DecimalFormat f = new DecimalFormat("###.##");
DecimalFormat f = new DecimalFormat("000.00000");
System.out.println(sum);
System.out.println(f.format(sum));
System.out.println(f.format(34.567));

break 

用在 switch和循環(huán)中。
用在單層循環(huán)中,用來結(jié)束循環(huán)。

continue

用在循環(huán)中。
作用 結(jié)束本次循環(huán)進(jìn)行下一次循環(huán)條件判斷。

對于雙重循環(huán),可以自定義一個標(biāo)簽,break或continue 到標(biāo)簽處。

一維數(shù)組 

Java 語言中提供的數(shù)組是用來存儲固定大小的同類型元素。

聲明數(shù)組

首先必須聲明數(shù)組變量,才能在程序中使用數(shù)組。下面是聲明數(shù)組變量的語法:

int[] arr;//聲明數(shù)組,告訴計算機我要存儲一組整數(shù)(推薦)
或
//int arr[];
int x1,x2,x3;//聲明了3個int類型的變量
int [] n1,n2,n3;//聲明了3個數(shù)組
int num1 [],num2,num3;//聲明了一個int類型的數(shù)組num1,兩個Int類型的變量。

創(chuàng)建數(shù)組

arr = new int[6];//創(chuàng)建一個數(shù)組,計算機在內(nèi)存中分配6個空間,并初始化

數(shù)組的元素是通過索引訪問的。數(shù)組索引從 0 開始,所以索引值從 0 到 arr.length-1。

數(shù)組初始化

//動態(tài)初始化:我們制定長度,系統(tǒng)賦值。
int[] arr = new int[5];//0
//初始值
//整數(shù):0  小數(shù):0.0  布爾:false  char:\0000  
//String:null  
//靜態(tài)初始化:我們賦值,系統(tǒng)分配長度(arr2.length)
int[] arr2 = {11,22,33};

賦值數(shù)組

arr[2]=33;

棧stack

  • 是作為構(gòu)思算法的輔助工具,不是完全的數(shù)據(jù)存儲工具。是插入和刪除操作被限制在表的線性表。
  • 只能從棧頂入棧,也只能從棧頂出站
  • 是一種后進(jìn)先出的結(jié)構(gòu)

遍歷數(shù)組

普通for循環(huán)

public class TestArray {
 public static void main(String[] args) {
  double[] myList = {1.9, 2.9, 3.4, 3.5};
 
  // 打印所有數(shù)組元素
  for (int i = 0; i < myList.length; i++) {
   System.out.println(myList[i] + " ");
  }
  // 計算所有元素的總和
  double total = 0;
  for (int i = 0; i < myList.length; i++) {
   total += myList[i];
  }
  System.out.println("Total is " + total);
  // 查找最大元素
  double max = myList[0];
  for (int i = 1; i < myList.length; i++) {
   if (myList[i] > max) max = myList[i];
  }
  System.out.println("Max is " + max);
 }
}

增強for循環(huán)

public class TestArray {
 public static void main(String[] args) {
  double[] myList = {1.9, 2.9, 3.4, 3.5};
 
  // 打印所有數(shù)組元素
  for (double element: myList) {
   System.out.println(element);
  }
 }
}

增強for循環(huán)的特點:

【1】簡潔

【2】不能制定范圍訪問,只能訪問全部

【3】不能反轉(zhuǎn)輸出,只能正序訪問

【4】不能修改數(shù)組元素的值

數(shù)組排序

冒泡排序

package day4;

public class Demo12 {

 public static void main(String[] args) {
  // 冒泡排序
  int[] arr = {34,1,78,9,43};
  int temp;
  for(int i = 0 ; i < arr.length-1;i++) {//輪
   for(int j = 0; j < arr.length-1-i; j++) {//次
    if(arr[j] > arr[j+1]) {
     temp = arr[j];
     arr[j]= arr[j + 1];
     arr[j + 1] = temp;
    }
   }
  }
  for(int n: arr) {
   System.out.println(n);
  }
  
 }

}

選擇排序

package day4;

import java.util.Arrays;

public class Demo13 {

 public static void main(String[] args) {
  // 選擇排序
  int [] arr = {5,12,3,78,345};
  int temp;
  for(int i = 0; i < arr.length-1; i++) {//位置
   for(int j = i + 1; j < arr.length; j++) {
    if(arr[i] > arr[j]) {
     temp = arr[i];
     arr[i] = arr[j];
     arr[j] = temp;
    }
   }
  }
  for(int n:arr) {
   System.out.println(n);
  }
//  System.out.println(Arrays.toString(arr));
 }

}

數(shù)組查找方法

普通查找方法(效率比較低)

public class ArrayTest {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  int[] arr = {4,6,8,33,66,44,99,54};
  int num=searchKey(arr,66);
  System.out.println(num);
 }
 //查找一個元素在數(shù)組中的第一次出現(xiàn)的位置
 public static int searchKey(int[] arr,int key) {
  for(int i=0;i

二分查找法(效率比較高)

public class binarySearch {
 public static void main(String[] args) {
  int[] arr = {9,12,15,24,36,41,59,68};
  int num =searchArray(arr,12);
  System.out.println(num);
 }
 //二分查找。前天:數(shù)組必須是有序的。
 /*
  * 思路:
  * 1.通過角標(biāo)先獲取中間角標(biāo)上的元素
  * 2.讓該元素和要找的數(shù)據(jù)比較。
  * 3.如果要找的數(shù)大了,縮小范圍,要找的范圍應(yīng)該是 中間的角標(biāo)+1---尾角標(biāo)
  * 如果要找的數(shù)效率,要找的范圍 頭角標(biāo)---中間角標(biāo)-1。
  * 4.不斷如此重復(fù),就可以找到元素對應(yīng)的角標(biāo)。
  * */
 public static int searchArray(int[] arr,int key) {
  int max,min,mid;
  min = 0;
  max = arr.length-1;
  mid = (min+max)>>1;
  while(arr[mid]!=key) {
   if(key > arr[mid]) {
    min = mid + 1;
   }else{
    max = mid - 1;
   }
   //判斷元素是否存在。
   if(max>1;
  }
  return mid;
 }
}
public class ArrayTest1 {
 public static void main(String[] args) {
  int[] arr = {9,12,15,24,36,41,59,68};
  int num =binarySearch(arr,44);
  System.out.println(num);
 }
 //二分查找。前天:數(shù)組必須是有序的。
 /*
  * 思路:
  * 1.通過角標(biāo)先獲取中間角標(biāo)上的元素
  * 2.讓該元素和要找的數(shù)據(jù)比較。
  * 3.如果要找的數(shù)大了,縮小范圍,要找的范圍應(yīng)該是 中間的角標(biāo)+1---尾角標(biāo)
  * 如果要找的數(shù)效率,要找的范圍 頭角標(biāo)---中間角標(biāo)-1。
  * 4.不斷如此重復(fù),就可以找到元素對應(yīng)的角標(biāo)。
  * */
 public static int binarySearch(int[] arr,int key) {
  //定義單個變量,記錄頭角標(biāo),尾角標(biāo),中間角標(biāo)
  int max,min,mid;
  min = 0;
  max = arr.length-1;
  while(min<=max) {
   mid = (min+max)>>1;
   if(key > arr[mid]) {
    min = mid + 1;
   }else if(key < arr[mid]) {
    max = mid - 1;
   }else {
    return mid;
   }
  }
  return -1;
 }
}

數(shù)組的復(fù)制

package cn.java.study;

import java.util.Arrays;

public class Demo5 {
 public static void main(String[] args) {
  int[] arr1 = {1,4,6,83,45};
  int[] arr2 = new int[arr1.length];
  //    源數(shù)組 源數(shù)組起始位置 目標(biāo)數(shù)組 目標(biāo)數(shù)組起始位置 復(fù)制長度
  System.arraycopy(arr1, 1, arr2, 2, 3);
  System.out.println(Arrays.toString(arr2));
 }
}

常用API之Arrays類

package cn.java.study;
//工具類
import java.util.Arrays;

public class Demo5 {
 public static void main(String[] args) {
  //Arrays
  int[] arr = {1,4,7,434,232,55};
  //將數(shù)組轉(zhuǎn)換成字符串
  System.out.println(Arrays.toString(arr));
  //對數(shù)組進(jìn)行升序排序
  Arrays.sort(arr);
  System.out.println(Arrays.toString(arr));
  //排序數(shù)組名 排序數(shù)組元素開始位置 排序數(shù)組元素結(jié)束位置(實際上,取到終止位置減一)[起始位置,終止位置)
  Arrays.sort(arr,2,4);
  System.out.println(Arrays.toString(arr));
  //多核處理器下并行操作使用
  Arrays.parallelSort(arr);
  //二分查找下標(biāo),數(shù)組 查找的數(shù)字,返回的是插入點,沒有的話返回的是負(fù)的插入點減一的值
  System.out.println(Arrays.binarySearch(arr, 8));
  //數(shù)組比較:元素的個數(shù)和對應(yīng)位置的數(shù)組元素相同
  int[] arr1 = {1,2,5};
  int[] arr2 = {1,2,5};
  System.out.println(Arrays.equals(arr1, arr2));
  //數(shù)組的填充,將數(shù)組中所有的元素替換為666
  Arrays.fill(arr, 666);
  System.out.println(Arrays.toString(arr));
  //數(shù)組的復(fù)制,返回的是一個數(shù)組, (要復(fù)制的數(shù)組,幾個元素)
  int[] arr3 = Arrays.copyOf(arr1, 2);
  System.out.println(Arrays.toString(arr3));
 }
}

二維數(shù)組

格式1:

int[][] arr = new int[3][2];
  • 定義了名稱為arr的二位數(shù)組
  • 二維數(shù)組中有3個一維數(shù)組
  • 每一個一維數(shù)組中有2個元素
  • 一維數(shù)組的名稱分別為arr[0],arr[1],arr[2]
  • 給第一個一維數(shù)組1角標(biāo)位賦值為666的寫法是:arr[0][1] = 666;

System.out.println(arr); // [[Ie6f7d2二位數(shù)組實體 e6f7d2是哈希值,[是數(shù)組,[[二位數(shù)組

格式2:

int[][] arr = new int[3][];
arr[0] = new int[3];
arr[1] = new int[1];
arr[2] = new int[2];

更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)組操作技巧總結(jié)》、《Java字符與字符串操作技巧總結(jié)》、《Java數(shù)學(xué)運算技巧總結(jié)》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》及《Java操作DOM節(jié)點技巧總結(jié)

希望本文所述對大家java程序設(shè)計有所幫助。

相關(guān)文章

  • Java并發(fā)之Semaphore工具類r的全面解析

    Java并發(fā)之Semaphore工具類r的全面解析

    Semaphore 是 java.util.concurrent中非常有用的并發(fā)編程工具類,它通常被用于限制對某個資源或資源池的并發(fā)訪問數(shù)量,下面我們就來深入了解一下Semaphore的具體使用吧
    2024-02-02
  • Java實現(xiàn)簡單碰撞檢測

    Java實現(xiàn)簡單碰撞檢測

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)簡單碰撞檢測,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Mabatis錯誤提示Parameter index out of range的處理方法

    Mabatis錯誤提示Parameter index out of range的處理方法

    這篇文章主要介紹了Mabatis錯誤提示Parameter index out of range 的處理方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-08-08
  • Java數(shù)據(jù)結(jié)構(gòu)之?dāng)?shù)組(動力節(jié)點之Java學(xué)院整理)

    Java數(shù)據(jù)結(jié)構(gòu)之?dāng)?shù)組(動力節(jié)點之Java學(xué)院整理)

    這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之?dāng)?shù)組(動力節(jié)點之Java學(xué)院整理)的相關(guān)資料,包括創(chuàng)建和內(nèi)存分配,數(shù)組封裝后的使用等,需要的朋友參考下吧
    2017-04-04
  • 100行java寫的微信跳一跳輔助程序

    100行java寫的微信跳一跳輔助程序

    本篇文章給大家分享了用java寫的一個微信跳一跳輔助腳本程序,有興趣的朋友參考學(xué)習(xí)下。
    2018-01-01
  • 一文詳解Java如何優(yōu)雅地判斷對象是否為空

    一文詳解Java如何優(yōu)雅地判斷對象是否為空

    這篇文章主要給大家介紹了關(guān)于Java如何優(yōu)雅地判斷對象是否為空的相關(guān)資料,在Java中可以使用以下方法優(yōu)雅地判斷一個對象是否為空,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • JDBC中使用Java8的日期LocalDate和LocalDateTime操作mysql、postgresql

    JDBC中使用Java8的日期LocalDate和LocalDateTime操作mysql、postgresql

    這篇文章主要給大家介紹了關(guān)于JDBC中如何使用Java8的日期LocalDate和LocalDateTime的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • tk-mybatis 的使用方法詳解

    tk-mybatis 的使用方法詳解

    tkmybatis是在mybatis框架的基礎(chǔ)上提供了很多工具,本文就詳細(xì)的介紹了一下tk-mybatis 的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • java中 利用正則表達(dá)式提取( )內(nèi)內(nèi)容

    java中 利用正則表達(dá)式提取( )內(nèi)內(nèi)容

    本篇文章,小編為大家介紹關(guān)于java中 利用正則表達(dá)式提取( )內(nèi)內(nèi)容,有需要的朋友可以參考一下
    2013-04-04
  • 基于spring boot 命令行啟動的一些坑

    基于spring boot 命令行啟動的一些坑

    這篇文章主要介紹了spring boot 命令行啟動的一些坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評論

外汇| 襄汾县| 启东市| 九江县| 鄂托克旗| 肥乡县| 彩票| 称多县| 平乐县| 红河县| 苗栗县| 孟津县| 庄河市| 铜山县| 永定县| 东兴市| 曲松县| 和田县| 舒城县| 平潭县| 万年县| 逊克县| 讷河市| 葫芦岛市| 泰安市| 汉沽区| 仪征市| 荃湾区| 石楼县| 高碑店市| 广德县| 通辽市| 乌恰县| 怀集县| 桂平市| 滨海县| 巴中市| 鸡西市| 忻城县| 大港区| 望城县|