7.2-全棧Java筆記:數(shù)組常見的操作

數(shù)組常見操作

數(shù)組的遍歷

數(shù)組元素下標(biāo)的合法區(qū)間:[0, length-1]。我們可以通過下標(biāo)來遍歷數(shù)組中的元素,遍歷時可以讀取元素的值或者修改元素的值。

【示例1】?使用循環(huán)遍歷初始化和讀取數(shù)組

public?class?? Test {

????public?static?void?? main(String[] args) {

???????int[] ? a =?new?int[4];

???????//初始化數(shù)組元素的值

???????for(int?? i=0;i<a.length;i++){

?????????? a[i] = 100*i;

?????? }

???????//讀取元素的值

???????for(int?? i=0;i<a.length;i++){

?????????? System.out.println(a[i]);

?????? }

??? }

}

示例1 運行效果圖

數(shù)組的拷貝

System類里也包含了一個static void arraycopy(object src,int srcpos,object dest,?int destpos,int length)方法,該方法可以將src數(shù)組里的元素值賦給dest數(shù)組的元素,其中srcpos指定從src數(shù)組的第幾個元素開始賦值,length參數(shù)指定將src數(shù)組的多少個元素賦給dest數(shù)組的元素。

【示例2】數(shù)組拷貝

public?class?? Test {

????public?static?void?? main(String args[]) {

?????? String[] s = {"阿里","尚學(xué)堂","京東","搜狐","網(wǎng)易"};

??? ??? String[] sBak =?new?? String[6];

??? ??? System.arraycopy(s,0,sBak,0,s.length);

??? ????for?(int?i ? = 0; i < sBak.length; ? i++) {

?????????? System.out.print(sBak[i]+ ??"\t");

?????? }

??? }

}

?示例2?運行效果圖

?java.util.Arrays類?

JDK提供的Java.util.Arrays類,包含了常用的數(shù)組操作,方便我們?nèi)粘i_發(fā)。Arrays類包含了:排序、查找、填充、打印內(nèi)容等常見的操作。

【示例3】打印數(shù)組

import?java.util.Arrays;

public?class?Test {

????public?static?void?main(String args[]) {

???????int[] a = {1,2};

?????? System.out.println(a);?? //打印結(jié)果:[I@35ce36

?????? System.out.println(Arrays.toString(a));? //打印結(jié)果:[1, 2]

??? }

}

新手雷區(qū)

此處的Arrays.toString()方法是Arrays類的靜態(tài)方法,不是前面講的Object的toString()方法。

【示例4】數(shù)組元素的排序

import?java.util.Arrays;

public?class?Test {

????public?static?void?main(String args[]) {

???????int[] a = {1,2,323,23,543,12,59};

?????? System.out.println(Arrays.toString(a));

?????? Arrays.sort(a);

?????? System.out.println(Arrays.toString(a));

??? }

}

?示例4?運行效果圖

【示例5數(shù)組元素是引用類型的排序(Comparable接口的應(yīng)用)

import?java.util.Arrays;

public?class?Test{

????public?static?void?main(String[] args) {

?????? Man[] msMans = {new?Man(3,"a"),new?? Man(60,"b"),new?Man(2,"c")};

?????? Arrays.sort(msMans);

?????? System.out.println(Arrays.toString(msMans));

??? }

}

class?Man?implements?Comparable {

????int?age;

????int?id;

??? String name;

????public?Man(int?age, String name) {

???????super();

???????this.age = age;

???????this.name = name;

??? }

????public?String toString(){

???????return?this.name;

??? }

????public?int compareTo(Object o) {

?????? Man man = ? (Man) o;

?????? if(this.age<man.age){

?????????? return -1;

?????? }

?????? if(this.age>man.age){

?????????? return 1;

?????? }

?????? return 0;

??? }

}?

【示例6】二分法查找

import?java.util.Arrays;

public?class?? Test {

????public?static?void?? main(String[] args) {

???????int[] ? a = {1,2,323,23,543,12,59};

?????? System.out.println(Arrays.toString(a));

???????Arrays.sort(a);?? ??//使用二分法查找,必須先對數(shù)組進(jìn)行排序

?????? System.out.println(Arrays.toString(a));

?????? System.out.println("該元素的索引:"+Arrays.binarySearch(a, ? 12));?//返回排序后新的索引位置,若未找到返回負(fù)數(shù)。

??? }

}

示例6運行效果圖

【示例7】填充

import?? java.util.Arrays;

public?class?? Test {

????public?static?void?? main(String[] args) {

???????int[] ? a= {1,2,323,23,543,12,59};

?????? System.out.println(Arrays.toString(a));

?????? Arrays.fill(a, 2, 4, 100);??//將2到4索引的元素替換為100

?????? System.out.println(Arrays.toString(a));

??? }

}

示例7 運行效果圖




「全棧Java筆記」是一部能幫大家從零到一成長為全棧Java工程師系列筆記。筆者江湖人稱 Mr. G,10年Java研發(fā)經(jīng)驗,曾在神州數(shù)碼、航天院某所研發(fā)中心從事軟件設(shè)計及研發(fā)工作,從小白逐漸做到工程師、高級工程師、架構(gòu)師。精通Java平臺軟件開發(fā),精通JAVAEE,熟悉各種流行開發(fā)框架。


筆記包含從淺入深的六大部分:

A-Java入門階段

B-數(shù)據(jù)庫從入門到精通

C-手刃移動前端和Web前端

D-J2EE從了解到實戰(zhàn)

E-Java高級框架精解

F-Linux和Hadoop?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,673評論 18 399
  • 【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔...
    葉總韓閱讀 5,226評論 0 41
  • Java經(jīng)典問題算法大全 /*【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子...
    趙宇_阿特奇閱讀 2,075評論 0 2
  • 一、 1、請用Java寫一個冒泡排序方法 【參考答案】 public static void Bubble(int...
    獨云閱讀 1,497評論 0 6
  • 加入程序員的行列算來已經(jīng)有3年多了,雖然專業(yè)不是計算機(jī)相關(guān)的專業(yè),但是經(jīng)歷了畢業(yè)初期的碌碌無為之后,我毅然決然的加...
    gift2016閱讀 229評論 0 0

友情鏈接更多精彩內(nèi)容