java的一些数组问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36883748/article/details/79967273

1.如何排序数组并搜索某个元素,找到返回下标

package zuoye;
import java.util.Arrays;

//找出指定元素的下标
import java.util.Scanner;
public class Test005 {
        public static void lp(int[] array,int pwd){
            for(int i=0;i<array.length;i++){
                if(pwd==array[i]){
                    System.out.println("你要找的元素下标为:"+i);
                }
            }
        }
        public static void main(String[] args) {
            int array[]={4,7,9,5,3};     
            Scanner lzq=new Scanner(System.in);
            System.out.println("请输入你要找的元素:");
            int pwd=lzq.nextInt();
            Arrays.sort(array);
            System.out.println("排序后数组为:  ");
        for(int i=0;i<array.length;i++){
                System.out.print(" "+array[i]);
            }
            System.out.println();
            lp(array,pwd);
        }   
    }

运行结果为:
这里写图片描述

2.如何排序数组并插入某个元素

package javayouquqenti;
//给已知的数组插入元素
public class ChaRuyuansu {
        public static void maopao(int[] array){   
            int tmp;
            for (int i = 0; i<array.length; i++) {
                for (int j = 0; j <array.length-1-i; j++) {

                    if(array[j]>array[j+1])
                    {
                        tmp = array[j];
                        array[j] = array[j+1];
                        array[j+1] = tmp;
                    }
                }
            }
        }
        public static void show(int[] Array){

        }
    public static void main(String[] args) {
        int[] array = {1,76,28,24,3,6,4,9};
        int cha = 22;
        int[] array1 = new int[array.length+1];
        array1[0]  = cha;   
        System.out.println("原数组为:");
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i]+"  ");
        }
        System.out.println();
        for (int i = 0; i < array.length; i++) { 
            array1[i+1] = array[i];
        }
        maopao(array1);   
        System.out.println("插入后的排序为:");
        for (int i = 0; i < array1.length; i++) {
            System.out.print(array1[i]+"  ");
        }
        System.out.println();
    }
    }

运行结果:
这里写图片描述

3.如何确定数组的上限

package zuoye;
//求一个数组的上限
public class Test {//二维数组的上限求法
        public static int Erwei(int[][] array){
            int lzq = 0;
            for (int i = 0; i < array.length; i++) {
                    lzq+=array[i].length;
            }
            return lzq;
        }
       //一维数组的上限求法
        public static int Yiwei(int[] array1){
                 int lzq1=array1.length;
                  return lzq1;
            }

    public static void main(String[] args) {
        int[][] array = new int[10][10];
        System.out.println(Erwei(array));
        int[] array1=new int[10];
        System.out.println(Yiwei(array1));

    }

}

运行结果:
这里写图片描述

4.数组的逆置

package javayouquqenti;
//数组的逆置
public class ShuZuNiZhi {
    public static void sum(int[] array){
        int tmp=0;
        for(int i=0;i<array.length/2;i++){
            tmp=array[i];
            array[i]=array[array.length-i-1];
            array[array.length-i-1]=tmp;
        }
    }
    public static void main(String[] args) {
     int array[]={1,2,9,5,4,3};
     sum(array);
     System.out.println("逆置后数组为:");
     for(int i=0;i<array.length;i++){
         System.out.print(" "+array[i]);
    }
    }

运行结果为:
这里写图片描述

5.如何打印一个String数组

package zuoye;
//打印一个Srting数组
public class Test01 {
    public static void lzq(String[] array){
        for(int i=0;i<array.length;i++){
            System.out.print(array[i]);
        }
        System.out.println();
    }
    public static void lzq1(char[] array){
        for(int i=0;i<array.length;i++){
            System.out.print(array[i]);
        }
        System.out.println();
    }
    public static void main(String[] args) {
     char[] array={'g','o','o','d'};
     lzq1(array);
     String[] array1={"好","好","学","习","天天向上"};
     lzq(array1);
    }

}

运行结果:
这里写图片描述

6.如何输出数组中的最大值和最小值

package javayouquqenti;
//输出一个数组中的最大值和最小值
public class ShuChuzuizhi {
    public static void maopao(int[] array){
         int tmp=0;
         for(int i=0;i<array.length;i++){
             for(int j=0;j<array.length-i-1;j++){
                 if(array[j]>array[j+1]){
                     tmp=array[j];
                     array[j]=array[j+1];
                     array[j+1]=tmp;
                 }
                }
             }
       }
    public static void main(String[] args) {
       int array[]={100,65,341,98,35};
       maopao(array);
   System.out.println("最小值为: "+array[0]);
        System.out.println("最大值为: "+array[array.length-1]);

       }
}

运行结果为:
这里写图片描述

7.如何合并两个数组

package java练习;
//两个数组合并为一个新数组
import java.util.Arrays;

public class SiYue1104{
public static void main(String[] args) {
    int[] a = {1,2,3,4,5};
    int[] b = {6,7,8,9,10};
    int[] c = new int[a.length+b.length];
    System.arraycopy(a, 0, c, 0, a.length);
    System.arraycopy(b, 0, c, a.length, b.length);
    System.out.println(Arrays.toString(c));
}
}

运行结果为:
这里写图片描述

8.如何填充数组

第一种方法:

package zuoye;

//填充数组
public class Test002 {
public static void main(String[] args) {
    int[] array=new int[20];
    int n=4;
    for(int i = 0;i < array.length;i++){//全部填充
        array[i] = n;
        System.out.print(array[i]+" ");
        }
    System.out.println();
    System.out.println("===========");
    for(int i = 0;i < array.length/2;i++){//部分填充
        array[i] = n;
        System.out.print(array[i]+" ");
        }

    }

}

运行结果为:
这里写图片描述

第二种方法:

package zuoye;
import java.util.Arrays;
public class Tianchonshuzu {
public static void main(String[] args) {
        int[] a = new int[10];
        Arrays.fill(a, 2);//全部填充
        System.out.println(Arrays.toString(a));
        Arrays.fill(a, 2,5,6);//部分填充(2号下标到5号下标填6)
        System.out.println(Arrays.toString(a));

    }

}

运行结果为:
这里写图片描述

9.初始化如何扩展数组(假设现有一个String数组,它的元素为“A”,“B”,“C”,“D”,扩展为6个元素的数组,增加“E”,“F”)

package javayouquqenti;
//把一个数组插入另一个数组
import java.util.Arrays;
public class KuoZhanshuzu {
public static void main(String[] args) {
    String[] a = {"A","B","C","D"};
    String[] b = new String[2+a.length];
    for (int i = 0; i < a.length; i++) {
        b[i] = a[i];
    }
    b[a.length] = "E";
    b[a.length+1] = "F";
    System.out.println(Arrays.toString(b));
}
}

运行结果为:
这里写图片描述

10.如何比较和排序数组

package zuoye;
//比较和排序两个数组
import java.util.Arrays;
public class Test004 {
public static void main(String[] args) {
        int[] array = {7,4,3,6,2};
        int[] array1 = {3,2,9,8,4,5};
        Arrays.sort(array);
        Arrays.sort(array1);//给数组排序
     System.out.println("两个数组是否相同?"
                + Arrays.equals(array, array1));
    }

}

运行结果:
这里写图片描述

11.如何删除数组指定元素

package zuoye;
//删除数组中的一个元素
import java.util.Arrays;
import java.util.Scanner;
public class Test003 {
    public static int serach(int[] array,int val){//求要删除元素的下标
        for(int i = 0;i < array.length;i++){
            if(array[i] == val){
                return i;
            }
        }
        return -1;
    }
    public static void delete(int[] array,int val){
        int index = serach(array,val);
        if(index == -1){
            return;
        }
        for(int i = index;i < array.length-1;i++){//删除一个元素后,新数组长度减1
            array[i] = array[i+1];//删除一个元素后,被删除元素后面的元素减1
        }
        array = Arrays.copyOf(array, array.length-1);//拷贝新数组
         System.out.println(Arrays.toString(array));//打印新数组
    }

public static void main(String[] args) {
           int[] array={1,3,5,6,1,9,852};
          Scanner lzq=new Scanner(System.in);
          System.out.println("输入要删除的元素  :");
          int pwd=lzq.nextInt();//输入要删除的元素
           delete(array,pwd);
    }
}

运行结果:
这里写图片描述

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页