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

Java數(shù)組的運用詳解

 更新時間:2021年08月09日 09:25:53   作者:言&己→  
這篇文章主要給大家介紹了關(guān)于Java中數(shù)組的定義和使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一,數(shù)組的含義:

一維數(shù)組:相同數(shù)據(jù)類型的元素的集合。

二位數(shù)組:存放數(shù)組的數(shù)組,也就是說數(shù)組里存的還是數(shù)組的數(shù)據(jù)形式。

二,數(shù)組的創(chuàng)建

一維數(shù)組

1,動態(tài)初始化

數(shù)據(jù)類型[] 數(shù)組名 = new 數(shù)據(jù)類型[數(shù)組長度];

例:int[] a = new int[5];

2,靜態(tài)初始化

數(shù)據(jù)類型[] 數(shù)組名 = {數(shù)組0,數(shù)組1,數(shù)組2,數(shù)組3,…};

例:int[] b = new int[]{1,2,3,4,5};

數(shù)據(jù)類型[] 數(shù)組名 = {數(shù)組0,數(shù)組1,數(shù)組2,數(shù)組3,…};

例:int[] c = {1,2,3,4,5}

二位數(shù)組

數(shù)據(jù)類型[][] 數(shù)組名 = {數(shù)組1,數(shù)組2,…};

例:int[][] a = {{3,5},{7,9},{1,2}};

在這里插入圖片描述

三,數(shù)組遍歷

一維數(shù)組遍歷

int [] arr={1,2,3,4,5};
for(int a = 0; a < arr.length; a++){
     System.out.print(arr[a]);
 }

運行結(jié)果:

12345

Arrays工具類中toString靜態(tài)方法遍歷

 int [] arr={1,2,3,4,5};
 System.out.print(Arrays.toString(arr));

運行結(jié)果:

[1, 2, 3, 4, 5]

二維數(shù)組遍歷

 int Arr[][]={{5,7,15},{8,4,11},{3,6,13}};
 for (int i = 0; i < Arr.length; i++) {
     for (int j = 0; j < Arr[i].length; j++) {
         System.out.print(Arr[i][j]+" ");
     }
 }

運行結(jié)果:

5 7 15 8 4 11 3 6 13

Arrays工具類中deepToString靜態(tài)方法遍歷

int b[][]={{5,7,15},{8,4,11},{3,6,13}};
System.out.println(Arrays.deepToString(b));

運行結(jié)果:

[[5, 7, 15], [8, 4, 11], [3, 6, 13]]

四,Arrays.deepToString()與Arrays.toString()的區(qū)別

Arrays.deepToString()主要用于數(shù)組中還有數(shù)組的情況,而Arrays.toString()則相反,對于Arrays.toString()而言,當(dāng)數(shù)組中有數(shù)組時,不會打印出數(shù)組中的內(nèi)容,只會以地址的形式打印出來。

例:

   int a[][]={{5,7,15},{8,4,11},{3,6,13}};
   System.out.println(Arrays.toString(a));
   int b[][]={{1,2,3},{8,4,11},{3,6,13}};
   System.out.println(Arrays.deepToString(b));

運行結(jié)果:

[[I@da2dbb, [I@176fe71, [I@fb509a]

[[1, 2, 3], [8, 4, 11], [3, 6, 13]]

五,Java中Arrays類的常用方法

Arrays類位于 java.util 包中,主要包含了操作數(shù)組的各種方法。

Arrays.fill(); //填充數(shù)組

 int[] a = new int[5];//新建一個大小為5的數(shù)組
 Arrays.fill(a,4);//給所有值賦值4
 System.out.println(Arrays.toString(a));

 int[] b = new int[5];//新建一個大小為5的數(shù)組
 Arrays.fill(b, 2,4,1);//給第2位(0開始)到第4位(不包括)賦值6
 System.out.println(Arrays.toString(b));

運行結(jié)果:

[4, 4, 4, 4, 4]
[0, 0, 1, 1, 0]

Arrays.sort(); //數(shù)組排序

1,數(shù)字排序

 int[] a = new int[] { 4, 1, 3, -2, 10 };
 Arrays.sort(a);
 System.out.println(Arrays.toString(a));
 

運行結(jié)果:

[-2, 1, 3, 4, 10]

2,字符串排序,先大寫后小寫

 String[] a = new String[] { "a", "b", "C" };
 Arrays.sort(a);
 System.out.println(Arrays.toString(a));

 運行結(jié)果:

[C, a, b]

3,嚴格按字母表順序排序,也就是忽略大小寫排序 CASE_INSENSITIVE_ORDER

 String[] a = new String[] { "a", "b", "C" };
 Arrays.sort(a, String.CASE_INSENSITIVE_ORDER);
 System.out.println(Arrays.toString(a));

 運行結(jié)果:

[a, b, C]

4,反向排序, Collections.reverseOrder()

 String[] a = new String[] { "a", "b", "C" };
 Arrays.sort(a, Collections.reverseOrder());
 System.out.println(Arrays.toString(a));
 

運行結(jié)果:

[a, b, C]

5,忽略大小寫反向排序 (先忽略大小寫,再反向排序)

  String[] a = new String[] { "a", "B", "c","D" };
  Arrays.sort(a, String.CASE_INSENSITIVE_ORDER);
  Collections.reverse(Arrays.asList(a));
  System.out.println(Arrays.toString(a));
  

運行結(jié)果:

[D, c, B, a]

6,選擇數(shù)組指定位置進行排序

int[] a = {3,2,1,8,6,5,4,7};
Arrays.sort(a,0,3);//給第0位(0開始)到第3位(不包括)排序
System.out.print(Arrays.toString(a));

 運行結(jié)果:

[1, 2, 3, 8, 6, 5, 4, 7]

Arrays.toString(); //將數(shù)組中的內(nèi)容全部打印出來

int[] a = {3,2,1,5,4};
System.out.println(a);//直接將數(shù)組打印輸出

String str = Arrays.toString(a); // Arrays類的toString()方法能將數(shù)組中的內(nèi)容全部打印出來
System.out.println(str);

運行結(jié)果:

[I@da2dbb
[3, 2, 1, 5, 4]

Arrays.equals(); //比較數(shù)組元素是否相等

int[] arr1 = {1,2,3};
int[] arr2 = {1,2,3};
System.out.println(Arrays.equals(arr1,arr2));
System.out.println(arr1.equals(arr2));

運行結(jié)果:

true
false

因為equals比較的是兩個對象的地址,不是里面的數(shù),而Arrays.equals重寫了equals,所以,這里能比較元素是否相等。

Arrays.copyOf();//復(fù)制數(shù)組

int[] a= {3, 7, 2, 1};
int[] b=Arrays.copyOf(arr6, 4);  //指定新數(shù)組的長度
int[] c=Arrays.copyOfRange(a, 1, 3); //只復(fù)制從索引[1]到索引[3]之間的元素(不包括索引[3]的元素)

System.out.println(Arrays.toString(b));
System.out.println(Arrays.toString(c));

運行結(jié)果:

[3, 7, 2, 1]
[7, 2]

數(shù)組中是否包含某一個值

String[] array={"aaa","bbb","ccc","ddd","eee"};
String a="aaa";
String b="fff";
if (Arrays.asList(array).contains(a)) {
    System.out.println("1");
}else {
    System.out.println("2");
}

if (Arrays.asList(array).contains(b)) {
    System.out.println("1");
}else {
    System.out.println("2");
}

運行結(jié)果:

1
2

其它方法,詳情見JAVA JDK_API

請?zhí)砑訄D片描述

請?zhí)砑訄D片描述

請?zhí)砑訄D片描述

請?zhí)砑訄D片描述

請?zhí)砑訄D片描述

請?zhí)砑訄D片描述

六,數(shù)組去重

1,利用set的特性去重

int[] arr11 = {1,2,3,4,5,6,7,8,9,0,3,2,4,5,6,7,4,32,2,1,1,4,6,3};
Set<Integer> set2=new HashSet<Integer>();
for (int i = 0; i < arr11.length; i++) {
    set2.add(arr11[i]);
}
System.out.println(set2);
int[] arr12 = new int[set2.size()];
int j=0;
for (Integer i:set2) {
    arr12[j++]=i;
}
System.out.println(Arrays.toString(arr12));

運行結(jié)果:

[0, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2,用List集合實現(xiàn)

int[] str = {5, 6, 6, 6, 8, 8, 7,4};
List<Integer> list = new ArrayList<Integer>();
for (int i=0; i<str.length; i++) {
    if(!list.contains(str[i])) {
        list.add(str[i]);
    }
}
System.out.println("去除重復(fù)后的list集合"+list);

運行結(jié)果:

[5, 6, 8, 7, 4]

3,用hashSet或者TreeSet實現(xiàn)

Integer[] nums = { 5, 5, 6, 6, 6, 8, 8, 7, 11, 12, 12 };
HashSet hset = new HashSet(Arrays.asList(nums));
//TreeSet<Integer> hset = new TreeSet<Integer>(Arrays.asList(nums));
Iterator i = hset.iterator();
while(i.hasNext()){
 	System.out.print(i.next());
}

運行結(jié)果:

56781112

4,用List和set實現(xiàn)

int[] nums = { 5, 6, 6, 6, 8, 8, 7 };
List<Integer> numList = new ArrayList<Integer>();
for (int i : nums)
    numList.add(i);
Set<Integer> numSet = new HashSet<Integer>();
numSet.addAll(numList);
System.out.println(numSet);

運行結(jié)果:

[5, 6, 7, 8]

七,數(shù)組刪除,增加元素

刪除數(shù)組中其中一個元素

String [] str = {"Java", "C++", "Php", "C#", "Python"};//刪除php
List<String> list = new ArrayList<String>();
for (int i=0; i<str.length; i++) {
    list.add(str[i]);
}
list.remove(2); //list.remove("Php")
String[] newStr =  list.toArray(new String[1]); //返回一個包含所有對象的指定類型的數(shù)組
System.out.println(Arrays.toString(newStr));

運行結(jié)果:

[Java, C++, C#, Python]

在數(shù)組中增加一個元素

String [] str = {"Java", "C++", "Php", "C#", "Python"};//增加ruby
List<String> list = new ArrayList<String>();
for (int i=0; i<str.length; i++) {
    list.add(str[i]);
}
list.add(2, "ruby");
String[] newStr =  list.toArray(new String[1]); //返回一個包含所有對象的指定類型的數(shù)組
System.out.println(Arrays.toString(newStr));

運行結(jié)果:

[Java, C++, ruby, Php, C#, Python]

八,數(shù)組與List相互轉(zhuǎn)換

數(shù)組轉(zhuǎn) List ,使用 JDK 中 java.util.Arrays 工具類的 asList 方法

String[] strs = new String[] {"aaa", "bbb", "ccc"};
List<String> list = Arrays.asList(strs);
for (String s : list) {
    System.out.println(s);
}

List 轉(zhuǎn)數(shù)組,使用 List 的toArray方法。無參toArray方法返回Object數(shù)組,傳入初始化長度的數(shù)組對象,返回該對象數(shù)組

List<String> list2 = Arrays.asList("aaa", "bbb", "ccc");
String[] array = list2.toArray(new String[list2.size()]);
for (String s : array) {
    System.out.println(s);
}

總結(jié)

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • SpringBoot實現(xiàn)IP地址解析的示例代碼

    SpringBoot實現(xiàn)IP地址解析的示例代碼

    本篇帶大家實踐在springboot項目中獲取請求的ip與詳細地址,我們的很多網(wǎng)站app中都已經(jīng)新增了ip地址顯示,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • java項目中多線程使用場景與實現(xiàn)方式詳解

    java項目中多線程使用場景與實現(xiàn)方式詳解

    在項目中,多線程的使用非常廣泛,主要用于提高程序的并發(fā)性和響應(yīng)速度,本文為大家整理了一些常見的多線程使用場景以及相應(yīng)的實現(xiàn)方式,希望對大家有一定的幫助
    2025-04-04
  • SpringBoot限制接口訪問頻率功能實現(xiàn)

    SpringBoot限制接口訪問頻率功能實現(xiàn)

    最近在基于SpringBoot做一個面向普通用戶的系統(tǒng),為了保證系統(tǒng)的穩(wěn)定性,防止被惡意攻擊,我想控制用戶訪問每個接口的頻率,接下來通過本文給大家介紹SpringBoot限制接口訪問頻率功能實現(xiàn),需要的朋友可以參考下
    2023-05-05
  • SpringMVC上傳圖片與訪問

    SpringMVC上傳圖片與訪問

    這篇文章主要介紹了SpringMVC上傳圖片與訪問的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • Java設(shè)計模式之備忘錄模式使用詳解

    Java設(shè)計模式之備忘錄模式使用詳解

    這篇文章主要介紹了Java設(shè)計模式中備忘錄模式的使用,備忘錄設(shè)計模式也叫作快照模式,主要用于實現(xiàn)防丟失、撤銷、恢復(fù)等功能,本文將通過示例為大家講解備忘錄模式的定義與使用,需要的同學(xué)可以參考一下
    2024-02-02
  • 兩種JAVA實現(xiàn)短網(wǎng)址服務(wù)算法

    兩種JAVA實現(xiàn)短網(wǎng)址服務(wù)算法

    這篇文章介紹了兩種JAVA實現(xiàn)短網(wǎng)址服務(wù)算法,一種是基于MD5碼的,一種是基于自增序列的,需要的朋友可以參考下
    2015-07-07
  • JavaWeb動態(tài)導(dǎo)出Excel可彈出下載

    JavaWeb動態(tài)導(dǎo)出Excel可彈出下載

    這篇文章主要介紹了JavaWeb動態(tài)導(dǎo)出Excel,對Excel可彈出進行下載操作,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Java進階教程之String類

    Java進階教程之String類

    這篇文章主要介紹了Java進階教程之String類,String類對象是不可變對象(immutable object),String類是唯一一個不需要new關(guān)鍵字來創(chuàng)建對象的類,需要的朋友可以參考下
    2014-09-09
  • 從log4j切換到logback后項目無法啟動的問題及解決方法

    從log4j切換到logback后項目無法啟動的問題及解決方法

    這篇文章主要介紹了從log4j切換到logback后項目無法啟動的問題及解決方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • @TransactionalEventListener的使用和實現(xiàn)原理分析

    @TransactionalEventListener的使用和實現(xiàn)原理分析

    這篇文章主要介紹了@TransactionalEventListener的使用和實現(xiàn)原理分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12

最新評論

内丘县| 阿瓦提县| 安达市| 淳化县| 京山县| 齐齐哈尔市| 酉阳| 兴宁市| 会昌县| 渭南市| 都江堰市| 邓州市| 布拖县| 安国市| 文山县| 庄河市| 汕头市| 丘北县| 邓州市| 和龙市| 湖南省| 兴宁市| 兴安县| 甘孜县| 内丘县| 吴川市| 登封市| 枣强县| 精河县| 扎赉特旗| 和平区| 临泉县| 鄂州市| 淮安市| 伊春市| 平原县| 思茅市| 东阿县| 旬邑县| 城市| 潼关县|