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

JAVA數(shù)組練習(xí)題實(shí)例講解

 更新時(shí)間:2023年08月30日 10:44:57   作者:小胡_不糊涂  
這篇文章主要給大家介紹了關(guān)于JAVA數(shù)組練習(xí)題的相關(guān)資料,這是個(gè)人總結(jié)的一些關(guān)于java數(shù)組的練習(xí)題,文中通過代碼實(shí)例介紹的非常詳細(xì),需要的朋友可以參考下

1. 數(shù)組轉(zhuǎn)字符串

toString() :可以將Array 對(duì)象轉(zhuǎn)換為字符串。

//語法格式:
arraylist.toString()

實(shí)例1:

import java.util.Arrays;//調(diào)用Arrays類,包含了常用的數(shù)組操作
public class test {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5,6};
        String newArr = Arrays.toString(arr);
        System.out.println(newArr);
    }
}

?? 運(yùn)行結(jié)果:

實(shí)例2:

import java.util.ArrayList;
public class test {
    public static void main(String[] args) {
          // 創(chuàng)建一個(gè)動(dòng)態(tài)數(shù)組
           ArrayList<String> sites = new ArrayList<>();
            sites.add("Runoob");
            sites.add("Google");
            sites.add("Wiki");
            sites.add("Taobao");
            System.out.println("網(wǎng)站列表: " + sites);
             // 將ArrayList轉(zhuǎn)換為String類型
             String list = sites.toString();
             System.out.println("String: " + list);
            }

?? 運(yùn)行結(jié)果:

2. 數(shù)組拷貝

實(shí)例1:

import java.util.Arrays;
public class test {
    public static void func(){
        // newArr和arr引用的是同一個(gè)數(shù)組
        // 因此newArr修改空間中內(nèi)容之后,arr也可以看到修改的結(jié)果
        int[] arr = {1,2,3,4,5,6};
        int[] newArr = arr;
        newArr[0] = 10;
        System.out.println("newArr: " + Arrays.toString(arr));
}
public static void main(String[] args) {
        func();
    }

?? 圖解:

?? 運(yùn)行結(jié)果:

實(shí)例2:使用Arrays中copyOf方法完成數(shù)組的拷貝

import java.util.Arrays;
public class test {
    public static void func(){
        int[] arr = {1,2,3,4,5,6};
        int[] newArr = arr;
        // copyOf方法在進(jìn)行數(shù)組拷貝時(shí),創(chuàng)建了一個(gè)新的數(shù)組
        // arr和newArr引用的不是同一個(gè)數(shù)組
        arr[0] = 1;
        newArr = Arrays.copyOf(arr, arr.length);
        System.out.println("newArr: " + Arrays.toString(newArr));
		}
	public static void main(String[] args) {
        func();
    }
 }

?? 圖解:

?? 運(yùn)行結(jié)果:

實(shí)例3:拷貝某個(gè)范圍

import java.util.Arrays;
public class test {
    public static void func(){
        int[] arr = {1,2,3,4,5,6};
        int[] newArr = arr;
        int[] newArr2 = Arrays.copyOfRange(arr, 2, 4);
        System.out.println("newArr2: " + Arrays.toString(newArr2));
     }
     public static void main(String[] args) {
        func();
    }
}

注: 數(shù)組當(dāng)中存儲(chǔ)的是基本類型數(shù)據(jù)時(shí),不論怎么拷貝基本都不會(huì)出現(xiàn)什么問題,但如果存儲(chǔ)的是引用數(shù)據(jù)類型,拷貝時(shí)需要考慮深淺拷貝的問題

模擬拷貝數(shù)組:

import java.util.Arrays;
public class test {
	//copyOf方法拷貝數(shù)組
    public static int[] copyOf(int[] arr) {
        int[] ret = new int[arr.length];
        for (int i = 0; i < arr.length; i++) {
            ret[i] = arr[i];
        }
        return ret;
    }
    public static void main(String[] args) {
        int[] a={1,4,5,6,9};
        int[] Array=copyOf(a);
        for(int i=0;i<Array.length;i++) {
            System.out.println(Array[i]);
        }
    }

?? 運(yùn)行結(jié)果:

3. 求數(shù)組中的元素的平均值

給定一個(gè)整型數(shù)組,求平均值

public class test {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        System.out.println(avg(arr));//輸出:3.0
    }
    public static double avg(int[] arr) {
        int sum = 0;
        for (int x : arr) {//遍歷數(shù)組
            sum += x;
        }
        return (double)sum / (double)arr.length;
    }
}

4. 順序查找數(shù)組中指定元素

給定一個(gè)數(shù)組,再給定一個(gè)元素,找出該元素在數(shù)組中的位置。

import java.util.Scanner;
public class test {
    public static void main(String[] args) {
         int[] arr = {1,2,3,10,5,6};
        Scanner scanner=new Scanner(System.in);//創(chuàng)建一個(gè)Scanner對(duì)象
        int num=scanner.nextInt();//讀取用戶輸入
        System.out.println(find(arr, num));
    }
    public static int find(int[] arr, int data) {
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == data) {
                return i;//返回下標(biāo)
            }
        }
        return -1; // 表示沒有找到
    }
}

?? 運(yùn)行結(jié)果:

5. 二分查找數(shù)組中指定元素

二分查找僅適用于有序查找

什么是有序數(shù)組?
有序分為 “升序” 和 “降序”
如 1 2 3 4 , 依次遞增即為升序.
如 4 3 2 1 , 依次遞減即為降序

以升序數(shù)組為例,二分查找的思路是先取中間位置的元素,然后使用待查找元素與數(shù)組中間元素進(jìn)行比較:

  • 如果相等,即找到了返回該元素在數(shù)組中的下標(biāo)
  • 如果小于,以類似方式到數(shù)組左半側(cè)查找
  • 如果大于,以類似方式到數(shù)組右半側(cè)查找

代碼示例:

import java.util.Scanner;
public class test {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5,6};
        System.out.print("請(qǐng)輸入你要查找的數(shù)字:");
        Scanner scanner=new Scanner(System.in);//創(chuàng)建一個(gè)Scanner對(duì)象
        int num=scanner.nextInt();
        System.out.println(binarySearch(arr, num));
    }
    public static int binarySearch(int[] arr, int toFind) {
        int left = 0;
        int right = arr.length - 1;
        while (left <= right) {
            int mid = (left + right) / 2;
            if (toFind < arr[mid]) {
            // 去左側(cè)區(qū)間找
                right = mid - 1;
            } else if (toFind > arr[mid]) {
            // 去右側(cè)區(qū)間找
                left = mid + 1;
            } else {
            // 相等, 說明找到了
                return mid;
            }
        }
            // 循環(huán)結(jié)束, 說明沒找到
        return -1;
    }
}

?? 運(yùn)行結(jié)果:

??隨著數(shù)組元素個(gè)數(shù)越多, 二分的優(yōu)勢(shì)就越大 

6. 數(shù)組排序(冒泡排序)

給定一個(gè)數(shù)組,讓數(shù)組升序 (降序) 排序

算法思路: 假設(shè)排升序

  1. 將數(shù)組中相鄰元素從前往后依次進(jìn)行比較,如果前一個(gè)元素比后一個(gè)元素大,則交換,一趟下來后最大元素就在數(shù)組的末尾
  2. 依次從上上述過程,直到數(shù)組中所有的元素都排列好

import java.util.Arrays;
public class test {
public static void main(String[] args) {
        int[] arr = {9,5,7,8,6,6,7};;
        bubbleSort(arr);//調(diào)用方法
        System.out.println(Arrays.toString(arr));
        }
    public static void bubbleSort(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            for (int j = 1; j < arr.length-i; j++) {
                //前一個(gè)與后一個(gè)比較,可能的話需要交換位置
                if (arr[j-1] > arr[j]) {
                    int tmp = arr[j - 1];
                    arr[j - 1] = arr[j];
                    arr[j] = tmp;
                }
            }
        } 
    }
}

?? 運(yùn)行結(jié)果:

但是冒泡排序性能較低。在Java 中內(nèi)置了更高效的排序算法:

import java.util.Arrays;
public class test {
    public static void main(String[] args) {
        int[] arr = {9,5,7,8,6,6,7};
        Arrays.sort(arr);//升序排序
        System.out.println(Arrays.toString(arr));
    }

7. 數(shù)組逆序

給定一個(gè)數(shù)組,將里面的元素逆序排列

算法思路:設(shè)定兩個(gè)下標(biāo),分別指向第一個(gè)元素和最后一個(gè)元素,交換兩個(gè)位置的元素,然后讓前一個(gè)下標(biāo)自增,后一個(gè)下標(biāo)自減,循環(huán)繼續(xù)即可。

import java.util.Arrays;
public class test {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4};
        reverse(arr);
        System.out.println(Arrays.toString(arr));//將數(shù)組轉(zhuǎn)化為字符串輸出
    }
    public static void reverse(int[] arr) {
        int left = 0;//指向首元素
        int right = arr.length - 1;//指向最后一個(gè)元素
        while (left < right) {
            //交換元素位置
            int tmp = arr[left];
            arr[left] = arr[right];
            arr[right] = tmp;
            //移動(dòng)下標(biāo)
            left++;
            right--;
        }
    }
}

?? 運(yùn)行結(jié)果:

總結(jié)

到此這篇關(guān)于JAVA數(shù)組練習(xí)題的文章就介紹到這了,更多相關(guān)JAVA數(shù)組練習(xí)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中Synchronized的用法解析

    Java中Synchronized的用法解析

    synchronized是Java中的關(guān)鍵字,是一種同步鎖,本文給大家詳細(xì)介紹Java Synchronized 用法大全,感興趣的朋友跟隨小編一起看看吧
    2021-11-11
  • 查看SpringBoot和JDK版本對(duì)應(yīng)關(guān)系的方法

    查看SpringBoot和JDK版本對(duì)應(yīng)關(guān)系的方法

    在進(jìn)行一些自主學(xué)習(xí)的時(shí)候,發(fā)現(xiàn)使用maven方式創(chuàng)建的SpringBoot項(xiàng)目啟動(dòng)失敗,最終發(fā)現(xiàn)是SpringBoot版本和JDK版本不對(duì)應(yīng)導(dǎo)致的,所以本文就給大家介紹了如何查看SpringBoot和JDK版本的對(duì)應(yīng)關(guān)系,需要的朋友可以參考下
    2024-03-03
  • 詳解使用Spring?Data?repository進(jìn)行數(shù)據(jù)層的訪問問題

    詳解使用Spring?Data?repository進(jìn)行數(shù)據(jù)層的訪問問題

    這篇文章主要介紹了使用Spring?Data?repository進(jìn)行數(shù)據(jù)層的訪問,抽象出Spring Data repository是因?yàn)樵陂_發(fā)過程中,常常會(huì)為了實(shí)現(xiàn)不同持久化存儲(chǔ)的數(shù)據(jù)訪問層而寫大量的大同小異的代碼,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2022-06-06
  • springboot掃描自定義的servlet和filter代碼詳解

    springboot掃描自定義的servlet和filter代碼詳解

    本文是一篇根據(jù)作者工作經(jīng)歷總結(jié)出來的關(guān)于springboot掃描自定義的servlet和filter代碼詳解的文章,小編覺得非常不錯(cuò),這里給大家分享下,和朋友們一起學(xué)習(xí),進(jìn)步。
    2017-10-10
  • Spring Boot 集成 Apache IoTDB 詳細(xì)過程

    Spring Boot 集成 Apache IoTDB 詳細(xì)過程

    本文介紹了SpringBoot項(xiàng)目集成Apache IoTDB的完整流程,包括集成前準(zhǔn)備、核心依賴配置、配置文件設(shè)置、數(shù)據(jù)操作實(shí)現(xiàn)、高級(jí)特性配置、常見問題與排查等內(nèi)容,通過本文指南,開發(fā)者可以快速搭建穩(wěn)定、高效的物聯(lián)網(wǎng)時(shí)序數(shù)據(jù)存儲(chǔ)系統(tǒng),并根據(jù)業(yè)務(wù)需求選擇合適的技術(shù)方案
    2026-05-05
  • Spring Web MVC框架學(xué)習(xí)之配置Spring Web MVC

    Spring Web MVC框架學(xué)習(xí)之配置Spring Web MVC

    這一篇文章講的是Spring Web MVC各部分的配置方法,包括Java代碼配置和XML文件配置以及MVC命名空間的使用方法。
    2017-03-03
  • JavaWeb實(shí)現(xiàn)注冊(cè)用戶名檢測(cè)

    JavaWeb實(shí)現(xiàn)注冊(cè)用戶名檢測(cè)

    這篇文章主要為大家詳細(xì)介紹了JavaWeb實(shí)現(xiàn)注冊(cè)用戶名檢測(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Java中的List接口實(shí)現(xiàn)類解析

    Java中的List接口實(shí)現(xiàn)類解析

    這篇文章主要介紹了Java中的List接口實(shí)現(xiàn)類解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java的信號(hào)量semaphore講解

    Java的信號(hào)量semaphore講解

    這篇文章主要介紹了Java的信號(hào)量semaphore講解,Semaphore底層是基于AbstractQueuedSynchronizer來實(shí)現(xiàn)的,Semaphore稱為計(jì)數(shù)信號(hào)量,它允許n個(gè)任務(wù)同時(shí)訪問某個(gè)資源,需要的朋友可以參考下
    2023-12-12
  • Spring boot配置多數(shù)據(jù)源代碼實(shí)例

    Spring boot配置多數(shù)據(jù)源代碼實(shí)例

    這篇文章主要介紹了Spring boot配置多數(shù)據(jù)源代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07

最新評(píng)論

义乌市| 汉沽区| 文登市| 吐鲁番市| 和平区| 瑞丽市| 顺昌县| 宕昌县| 永定县| 商水县| 永泰县| 油尖旺区| 沛县| 西林县| 盐源县| 千阳县| 襄城县| 桂阳县| 玉林市| 巫山县| 囊谦县| 灵武市| 宜兰市| 德江县| 阳春市| 长沙市| 雷州市| 炎陵县| 张家港市| 连云港市| 家居| 桓仁| 宜君县| 鹿邑县| 五河县| 万荣县| 阿勒泰市| 永靖县| 新丰县| 克山县| 莫力|