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

新手了解java 數(shù)組基礎(chǔ)知識(shí)

 更新時(shí)間:2021年07月15日 08:51:47   作者:王星偉QAQ  
這篇文章主要介紹了Java 數(shù)組分析及簡(jiǎn)單實(shí)例的相關(guān)資料,在Java中它就是對(duì)象,一個(gè)比較特殊的對(duì)象,需要的朋友可以參考下,希望可以對(duì)你有所幫助

1、數(shù)組的定義

  • 先聲明后使用

數(shù)據(jù)類型 [] 數(shù)組名稱 = new 數(shù)據(jù)類型[長(zhǎng)度];String[] arr3 = new String[5];

數(shù)據(jù)類型 數(shù)組名稱[] = new 數(shù)據(jù)類型[長(zhǎng)度];String arr[] = new String[5];

  • 直接初始化

String[] arrs = {"1","2","3"};

  • 聲明并初始化
String[] sarr = new String[]{"a","b"};

2、array 遍歷

  • 流遍歷

將數(shù)組封裝成流進(jìn)行操作,所有的操作都和列表一樣操作

public static void main(String[] args) {
      String[] arrs = {"1","2","3"};
      Arrays.stream(arrs).forEach(System.out::println);
  }
  • 普通遍歷

普通遍歷有三種方式,建議使用第一種,

如果需要使用索引可以使用第三種

如果想要倒序,則使用第三種

圖片

3、List和array 之間的轉(zhuǎn)換

list 和 array 之間大有聯(lián)系,list 的實(shí)現(xiàn)形式有鏈表和 數(shù)組,我們開(kāi)發(fā)中經(jīng)常需要對(duì)兩者進(jìn)行轉(zhuǎn)換

1、數(shù)組轉(zhuǎn)list

  • 使用循環(huán) 轉(zhuǎn)換為list
  • 借助工具方法

代碼展示:

   public static void main(String[] args) {
       String[]  arrs = {"1","2","3"};
       // 循環(huán)轉(zhuǎn)換
       List<String> list1 = new ArrayList<>();
       for (String arr : arrs) {
           list1.add(arr);
      }
       // 借助數(shù)組工具類
       List<String> list2 = Arrays.asList(arrs);
       // 借助集合工具類
       List<String> list3 = new ArrayList<>();
       Collections.addAll(list2,arrs);
  }

2、list 轉(zhuǎn)數(shù)組

  • list 內(nèi)置方法 toArray
  • 直接循環(huán)

代碼展示

   public static void main(String[] args) {
       List<String> list = Arrays.asList("1","2");
       String[] arr1 = new String[list.size()];
       // 循環(huán)遍歷賦值
       for (int i = 0; i < list.size(); i++) {
           arr1[i] = list.get(i);
      }
       // 調(diào)用list 方法
       String[] arr2 = (String[]) list.toArray();
  }

3、Arrays工具類

  • toString()

打印數(shù)組的方法,如果不調(diào)用這個(gè)方法打印的是內(nèi)存地址

圖片

  • stream()

將數(shù)組轉(zhuǎn)換為流操作,具體就不演示了

  • sort()

對(duì)數(shù)組進(jìn)行排序,注意這個(gè)排序是數(shù)組內(nèi)部排序,沒(méi)有返回值,原數(shù)組會(huì)被改變

  • setAll

對(duì)數(shù)組內(nèi)的元素進(jìn)行操作,需要提供一個(gè)function,具有不同的數(shù)據(jù)類型

String[] arrs = {"1","2","3"};
      Arrays.setAll(arrs, e->e+"0");
      for (String arr : arrs) {
          System.out.println(arr);
      }
  • binarySearch

看名字都知道這是二分查找,具體的算法也很簡(jiǎn)單,如果你還不會(huì),可以補(bǔ)一下了,如果你懂二分查找應(yīng)該知道,在調(diào)用這個(gè)方法之前要保證數(shù)組是有序的!

  • copyOf

名字也很直白,拷貝數(shù)組,擴(kuò)展就是增加一些長(zhǎng)度限制,或者填充數(shù)據(jù)的設(shè)置

  • equals

看起來(lái)不需要解釋

  • deepEquals

判斷兩個(gè)數(shù)組的深度是否相同,也就是數(shù)組嵌套了幾層

    public static void main(String[] args) {
          String[] arrs = {"1","2","3"};
          String[][] arr2 = {{"1"},{"2"},{"3"}};
          boolean b = Arrays.deepEquals(arr2, arrs);
          System.out.println(b);
      }
  • fill

認(rèn)識(shí)英語(yǔ)的話基本上都懂,就是如何填充數(shù)組,當(dāng)然你也可以自己進(jìn)行循環(huán)操作

  • hashCode

計(jì)算數(shù)組的hash code

  • parallelPrefix

這個(gè)有些意思的,并行的累計(jì)操作數(shù)組內(nèi)的元素,看個(gè)例子你就知道了

public static void main(String[] args) {
       String[]  sarr = new String[]{"a","b","c"};
       Arrays.parallelPrefix(sarr, (sum,e1)->e1 + sum);
       System.out.println(Arrays.toString(sarr));
  }

看下執(zhí)行結(jié)果:

圖片

4、可能遇到的問(wèn)題

1、索引越界問(wèn)題,數(shù)組的下標(biāo)索引是從0 開(kāi)始的,最后一個(gè)索引是length -1 ,注意不要越界

2、下面的方式創(chuàng)建的列表不支持添加

因?yàn)锳rrays中的ArrayList并沒(méi)有實(shí)現(xiàn)remove()和add()方法,所以拋出了異常。所以說(shuō) Arrays.asList 返回的 List 是一個(gè)不可變長(zhǎng)度的列表,此列表不再具備原 List 的很多特性,因此慎用 Arrays.asList 方法。

String[] arr = {"1", "2", "3"};
       List list = Arrays.asList(arr);
       arr[1] = "4";
       try {
           list.add("5");
      } catch (Exception ex) {
           ex.printStackTrace();
      }

3、一個(gè)小技巧,將數(shù)組繞成圈進(jìn)行遍歷

使用對(duì)數(shù)組長(zhǎng)度取余即可

   public static void main(String[] args) {
       String[] arr = {"a", "b", "c"};
       int i = 0;
       int j = 0;
       int length = arr.length;
       while (j++ <10){
           System.out.println(arr[i%length]);
           i++;
      }
  }

可以看到多次遍歷了數(shù)組

圖片

總結(jié)

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

相關(guān)文章

  • Java  Option用法詳解

    Java  Option用法詳解

    Optional類是Java8為了解決null值判斷問(wèn)題,借鑒google guava類庫(kù)的Optional類而引入的一個(gè)同名Optional類,使用Optional類可以避免顯式的null值判斷,避免null導(dǎo)致的NPE,下面以一些典型場(chǎng)景為例,列出Optional API常用接口的用法,并附上相應(yīng)代碼,感興趣的朋友一起看看吧
    2024-01-01
  • java中線程的狀態(tài)學(xué)習(xí)筆記

    java中線程的狀態(tài)學(xué)習(xí)筆記

    在本文里我們給大家整理了關(guān)于java中線程的狀態(tài)的相關(guān)知識(shí)點(diǎn)內(nèi)容,對(duì)此有需要的朋友們學(xué)習(xí)參考下。
    2019-03-03
  • SpringBoot對(duì)接小程序微信支付的實(shí)現(xiàn)

    SpringBoot對(duì)接小程序微信支付的實(shí)現(xiàn)

    本文主要介紹了SpringBoot對(duì)接小程序微信支付的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧<BR>
    2023-09-09
  • MyBatis編寫一個(gè)簡(jiǎn)單的SQL生成工具

    MyBatis編寫一個(gè)簡(jiǎn)單的SQL生成工具

    MyBatis 是一個(gè)強(qiáng)大的數(shù)據(jù)持久化框架,它提供了一種半自動(dòng)化的 ORM 實(shí)現(xiàn)方式,本文將為大家介紹如何使用MyBatis編寫一個(gè)簡(jiǎn)單的SQL生成工具,需要的可以了解下
    2025-03-03
  • SpringBoot中Tomcat和SpringMVC整合源碼分析

    SpringBoot中Tomcat和SpringMVC整合源碼分析

    Tomcat和SpringMVC都是通過(guò)這樣的方式進(jìn)行集成的,SpringBoot出現(xiàn)之前SpringMVC項(xiàng)目是直接部署在Tomcat服務(wù)器中的,這篇文章主要介紹了SpringBoot中Tomcat和SpringMVC整合源碼分析,需要的朋友可以參考下
    2022-07-07
  • java Hibernate多對(duì)多映射詳解及實(shí)例代碼

    java Hibernate多對(duì)多映射詳解及實(shí)例代碼

    這篇文章主要介紹了java Hibernate多對(duì)多映射詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • Java接口默認(rèn)方法帶來(lái)的問(wèn)題分析【二義性問(wèn)題】

    Java接口默認(rèn)方法帶來(lái)的問(wèn)題分析【二義性問(wèn)題】

    這篇文章主要介紹了Java接口默認(rèn)方法帶來(lái)的問(wèn)題,結(jié)合實(shí)例形式分析了java接口帶來(lái)的二義性問(wèn)題,需要的朋友可以參考下
    2019-08-08
  • CountDownLatch和Atomic原子操作類源碼解析

    CountDownLatch和Atomic原子操作類源碼解析

    這篇文章主要為大家介紹了CountDownLatch和Atomic原子操作類的源碼解析以及理解應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • Java使用Ajax實(shí)現(xiàn)跨域上傳圖片功能

    Java使用Ajax實(shí)現(xiàn)跨域上傳圖片功能

    這篇文章主要介紹了Java使用Ajax實(shí)現(xiàn)跨域上傳圖片功能,需要的朋友可以參考下
    2017-09-09
  • 使用Spring Security和JWT實(shí)現(xiàn)安全認(rèn)證機(jī)制

    使用Spring Security和JWT實(shí)現(xiàn)安全認(rèn)證機(jī)制

    在現(xiàn)代 Web 應(yīng)用中,安全認(rèn)證和授權(quán)是保障數(shù)據(jù)安全和用戶隱私的核心機(jī)制,Spring Security 是 Spring 框架下專為安全設(shè)計(jì)的模塊,具有高度的可配置性和擴(kuò)展性,而 JWT則是當(dāng)前流行的認(rèn)證解決方案,所以本文介紹了如何使用Spring Security和JWT實(shí)現(xiàn)安全認(rèn)證機(jī)制
    2024-11-11

最新評(píng)論

蓬莱市| 车险| 海阳市| 嘉荫县| 洪江市| 高清| 塔城市| 行唐县| 泾川县| 同心县| 安岳县| 无为县| 茶陵县| 于都县| 铜山县| 息烽县| 大兴区| 巴塘县| 泉州市| 饶平县| 阿拉善盟| 汉阴县| 临沂市| 芒康县| 虎林市| 泰和县| 赣榆县| 丰镇市| 宜春市| 天镇县| 朝阳县| 汾阳市| 肃宁县| 淳安县| 富蕴县| 沂源县| 邢台县| 永胜县| 乐山市| 凤山县| 平邑县|