Javaでの配列の挿入、検索、保存、および適用範囲

1.どのアレイですか?

例:配列は、同じタイプのデータを格納するために使用されるコレクションのタイプです。

2.ストレージスペース(スタックスペースとヒープスペース)

ここに画像の説明を挿入

3、コードとレンダリング

1.配列を使用して最大値と最小値を見つけます

ケース:キーボードから10個の整数を受け入れ、最大値と最小値を見つけます。
コードは次のとおりです(例):

import java.util.Scanner;

public class Work1 {
    
    
    public static void main(String[] args) {
    
    
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入十个数字:");
        int[] arr =new int[10];
        for (int a = 0; a <arr.length ; a++) {
    
    
            arr[a]=sc.nextInt();
        }
        int  max=arr[0];
        int  min=arr[0];
        for (int i = 1; i <arr.length ; i++) {
    
    
            if (max<=arr[i]){
    
    
                max=arr[i];
            }
        }
        for (int j = 1; j <arr.length ; j++) {
    
    
            if (min>=arr[j]){
    
    
                min=arr[j];
            }
        }
        System.out.println("最大值为:"+max);
        System.out.println("最小值为:"+min);
    }
}

ここに画像の説明を挿入

2.配列内の要素を見つける

例:10個の数値を入力し、それらを配列に保存し、配列内の数値を検索し、見つかったかどうかに関する情報を提供します。見つかった場合は、配列内の数値の位置を出力します。出力が見つからない場合は、 "見つかりません" "
コードは次のとおりです(例):

import java.util.Scanner;

public class Work2 {
    
    
    public static void main(String[] args) {
    
    
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入10个数:");
        int[] arr=new int[10];
        for (int i = 0; i <arr.length ; i++) {
    
    
            arr[i]=sc.nextInt();
        }
        System.out.println("请输入你想查找的数:");
        int number = sc.nextInt();
        boolean isnumber=false;
        for (int j = 0; j <arr.length ; j++) {
    
    
            if (arr[j]==number){
    
    
                System.out.println("该数处于数组中第"+(j+1)+"个位置");
                isnumber=true;
            }
        }
        if (isnumber==false){
    
    
            System.out.println("找不到");
        }
    }
}

ここに画像の説明を挿入

3.配列内のデータの入力ストレージ

ケース:10個のデータを入力して配列に格納し、次のように配列コードを出力
します(例)。

import java.util.Arrays;
import java.util.Scanner;

public class Work2 {
    
    
    public static void main(String[] args) {
    
    
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入10个数:");
        int[] arr=new int[10];
        for (int i = 0; i <arr.length ; i++) {
    
    
            arr[i]=sc.nextInt();
        }
        System.out.println(Arrays.toString(arr));

ここに画像の説明を挿入

4.入力データのサイズに応じて、配列内の添え字の位置を出力します

ケース:序数{1,5,20,30,80}のシーケンスを定義し、ユーザーに番号の入力を求めます。番号を配列に挿入する必要があるかどうかを判断するための添え字は何ですか。
コードは次のとおりです(例):

import java.util.Scanner;
public class Work7 {
    
    
    public static void main(String[] args) {
    
    
        int[] arr={
    
    1,5,20,30,80};
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个数字:");
        int number = sc.nextInt();
        //找到第一个比number大的数
        for (int i = 0; i< arr.length; i++) {
    
    
            if (arr[i]>number){
    
    
                System.out.println("该数应该插入的下标是:"+i);
                break;
            }
        }
    }
}

ここに画像の説明を挿入

5.配列内の要素の指定された位置が上書きされます

ケース:長さ8の配列を定義し、最初の7つの要素に値を割り当て、最後の要素に値を割り当てないようにします.5番目の要素から、次の要素が順番に上書きされ、最終結果が出力されます。
コードは次のとおりです(例):

package work1;

import java.util.Scanner;
public class Work8 {
    
    
    public static void main(String[] args) {
    
    
        fun1();
        fun();
    }
    //方法1
    private static void fun1() {
    
    
        int [] arr={
    
    10,20,30,40,50,60,70,0};
        // i 第五个元素的下标为4 最后一个数的下标为len-1    len-2赋值给len-1  len3赋值给len-2   下标4赋值给下标5
        for (int i = arr.length-2; i >= 4; i--) {
    
    
            arr[i+1]=arr[i];
        }
        //输出数组
        for (int i = 0; i < arr.length; i++) {
    
    
            System.out.println(arr[i]+" ");
        }
    }
    //方法2
    private static void fun() {
    
    
        int[] arr=new int[8];
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入七个数值:");
        for (int i = 0; i <arr.length-1 ; i++) {
    
    
            arr[i]=sc.nextInt();
        }
        for (int j = arr.length-1; j >=5 ; j--) {
    
    
            arr[j]=arr[j-1];
        }
        for (int a:arr){
    
    
            System.out.print(a+"\t");
        }
    }
}

ここに画像の説明を挿入
ここに画像の説明を挿入

6.指定された値を配列の指定された位置に挿入します

コードは次のとおりです(例):

package work1;

import java.util.Arrays;
import java.util.Scanner;
//.定义一个有序数列,{1,5,20,30,80},
// 要求用户输入一个数字,然后插到数组中,并保持升序,不能使用冒泡排序。
public class Work9 {
    
    
    public static void main(String[] args) {
    
    
        fun2();
        fun();

    }
    //方法一:
    private static void fun2() {
    
    
        int [] arr={
    
    10,20,30,40,50,60,70,0};
        int x=50;//插入的数字值
        //1.找到应该插入的下标index;
        int index=arr.length-1;//默认值就是最后一个,找第一个比x大的下标
        for (int i = 0; i < arr.length; i++) {
    
    
            if (arr[i]>x){
    
    
                index=i;
                break;
            }
        }
        System.out.println(index);
        //2.从index开始,依次向后移位
        for (int i = arr.length-2; i >=index ; i--) {
    
    
            arr[i+1]=arr[i];
        }
        //3.用x替换arr[index]
        arr[index]=x;
        //输出数组
        for (int i = 0; i < arr.length; i++) {
    
    
            System.out.print(arr[i]+" ");
        }
    }
    //方法2
    private static void fun() {
    
    
        int[] arr={
    
    1,5,20,30,80};
        int[] arr1=new int[6];
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入需要插入的数字:");
        int number = sc.nextInt();
        for (int i = 0; i <arr.length ; i++) {
    
    
            arr1[i]=arr[i];
        }
        int xia=arr1.length-1;
        for (int a = arr.length-1; a >=0 ; a--) {
    
    
            if (arr[a]>number){
    
    
                xia=a;
            }
        }
        for (int b = xia; b <arr.length ; b++) {
    
    
            arr1[b+1]=arr[b];
        }
        arr1[xia]=number;
        arr=arr1;
        System.out.println(Arrays.toString(arr));
    }
}


ここに画像の説明を挿入
ここに画像の説明を挿入

7.配列内の配列要素の逆出力

ケース:3。配列内の要素を逆の順序で出力します。つまり、最初の要素が最後の要素と交換され、2番目の番号が最後から2番目の要素と交換されます...例:元の配列は次のとおりです:9 2 5 7 8、逆の順序で次の配列は次のとおりです。87 5 2 9
コードは次のとおりです(例)。

package work1;

import java.util.Scanner;
public class Work3 {
    
    
    public static void main(String[] args) {
    
    
        int[] arr=new int[5];
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入5个数组成原数组:");
        for (int i = 0; i <arr.length ; i++) {
    
    
            arr[i]=sc.nextInt();
        }
        int a=0;
        for (int j = 0; j <arr.length/2; j++) {
    
    
            a=arr[j];
            arr[j]=arr[4-j];
            arr[4-j]=a;
        }
        System.out.println("逆序后的新数组为:");
        for (int b:arr){
    
    
            System.out.print(b+"\t");
        }
    }
}

ここに画像の説明を挿入

総括する

上記は、配列アプリケーションの内容であり、主に配列の最大値と最小値の知識、指定された位置への要素の挿入、およびその後の要素のカバレッジです。

おすすめ

転載: blog.csdn.net/StruggleBamboo/article/details/110621454