Java中数组的使用(第一篇)

Posted nuist__NJUPT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中数组的使用(第一篇)相关的知识,希望对你有一定的参考价值。

Java中数组的使用(第一篇)

  • 键盘输入5个整数,存到一个数组中
  • 计算所有元素的和,最大值,最小值和平均值
/**
 * 键盘输入5个整数,存到一个数组中
 * 计算所有元素的和,最大值,最小值和平均值
 */
import java.util.Scanner;

public class IntArray {
    public static void main(String[] args){
        int [] array = new int [5] ;
        Scanner input = new Scanner(System.in) ;

        for(int i=0; i<5; i++){
            array[i] = input.nextInt() ;
        }

        int max = array[0], min = array[0], sum = 0 ;
        double average = 0.0 ;

        for(int j=0; j<array.length; j++){
            if(array[j] > max){
                max = array[j] ;
            }
            if(array[j] < min){
                min = array[j] ;
            }
        }
        for(int m : array){
            sum += m ;
        }
        average = sum / 5.0 ;
        System.out.println("最大值:" + max + "最小值:" + min + "总和:" + sum + "平均值:" + average) ;

     }
}

  • 编写程序,使之产生1000个1-6的随机数,并统计每个数出现的次数
/**
 * 编写程序,使之产生1000个1-6的随机数,并统计每个数出现的次数
 */
public class RandomTest {
    public static void main(String[] args){
        int [] array = new int [6] ;
        for(int i=0; i<1000; i++){
            int number = (int)(Math.random() * 6) + 1 ; //产生1-6之间的随机数
            switch(number){
                case 1 : array[0] ++ ; break ;
                case 2 : array[1] ++ ; break ;
                case 3 : array[2] ++ ; break ;
                case 4 : array[3] ++ ; break ;
                case 5 : array[4] ++ ; break ;
                case 6 : array[5] ++ ; break ;
            }
        }
        for(int i=0;i<array.length; i++){
            System.out.print(array[i] + " ") ;
        }
    }
}
  • 编写一个方法,求double型数组的最小值

import java.util.Scanner;

/**
 * 编写一个方法,求double型数组的最小值
 */
public class ArrayDemo {
    public static double min(double [] array){ //求数组最小值的方法
        double min = array[0] ;
        for(int i=0; i<array.length; i++){
            if(min > array[i]){
                min = array[i] ;
            }
        }
        return min ;
    }
    public static void main(String[] args){
        Scanner input = new Scanner(System.in) ;
        System.out.print("请输入5个double型数:");
        double [] array = new double [5] ;
        for(int i=0; i<array.length; i++){
            array[i] = input.nextDouble() ;
        }
        System.out.println("最小值:" + min(array)) ;
    }
}

  • 定义一个有10个元素的整形数组,将前5个元素与后5个元素进行互换
  • 即将第一个元素与第10个元素互换,第2个元素与第9个互换,依次类推
  • 输出原来数组的元素值和互换后的数组的元素值
/**
 * 定义一个有10个元素的整形数组,将前5个元素与后5个元素进行互换
 * 即将第一个元素与第10个元素互换,第2个元素与第9个互换,依次类推
 * 输出原来数组的元素值和互换后的数组的元素值
 */
import java.util.Scanner;
public class ArrayChange {
    public static void main(String[] args){
        int [] array = new int [10] ;
        Scanner input =  new Scanner(System.in) ;
        for(int i=0; i<array.length; i++){
            array[i] = input.nextInt()  ;
        }
        for(int m : array){ //输出原来的数组元素
            System.out.print(m + " ") ;
        }
        System.out.println() ;

        for(int j=0; j<array.length / 2 ; j++){ //交换数组元素
            int temp = array[j] ;
            array[j] = array[array.length-1-j];
            array[array.length-1-j] = temp  ;
        }
        for(int n : array){ //输出交换后的数组元素
            System.out.print(n + " ") ;
        }
    }
}

  • 定义一个有8个元素的整形数组,使用选择排序法对数组进行升序排序

/**
 * 定义一个有8个元素的整形数组,使用选择排序法对数组进行升序排序
 */
public class ArraySort {
    public static void main(String[] args){
        int [] number = new int [] {3,1,-4,2,7,9,6,70} ;
        System.out.print("排序之前的数组元素:") ;
        for(int m : number){
            System.out.print(m + " ") ;
        }
        for(int i=0; i<number.length-1; i++){ //i趟排序
            int k = i ;
            for(int j=k+1; j<number.length; j++){
                if(number[k] > number[j]){ //找出每趟最小值的所在位置
                    k = j ;
                }
            }
            //交换
            if(i != k){
                int temp = number[i] ;
                number[i] = number[k] ;
                number[k] = temp ;
            }
        }
        System.out.print("排序后的数组元素:") ;
        for(int n : number){
            System.out.print(n + " ")  ;
        }
    }
}

  • 使用非递归打印斐波那契数列的前20项
  • 斐波那契数列第一个和第二个数都是1,以后每个数是前两个数字之和
/**
 * 使用非递归打印斐波那契数列的前20项
 * 斐波那契数列第一个和第二个数都是1,以后每个数是前两个数字之和
 */
public class Fibonacci {
    public static void main(String[] args) {
        int [] array = new  int [20] ;
        array[0] = 1 ;
        array[1] = 1 ;
        for(int i=2; i<array.length; i++){
            array[i] = array[i-1] + array[i-2] ;
        }
        for(int m : array){
            System.out.print(m + " ") ;
        }
    }
}

  • 编写一个方法,计算两个一维数组元素之和,对应元素求和即可
import java.util.Arrays;

/**
 * 编写一个方法,计算两个一维数组元素之和,对应元素求和即可
 */
public class SumArray {
    public static int [] sumArray(int [] a, int [] b){
        int size = Math.max(a.length,b.length) ;
        int [] sum = new int [size] ;
        a = Arrays.copyOf(a,size) ; //元素复制存放到数组中
        b = Arrays.copyOf(b,size) ;
        for(int i=0; i<size; i++){
            sum[i] = a[i] + b[i] ;
        }
        return sum ;
    }
    public static void main(String[] args){
        int [] a = new int [] {1,2,4} ;
        int [] b = new int [] {2,4,6,8} ;
        int [] c = sumArray(a,b)  ;
       for(int i=0; i<c.length; i++){
           System.out.print(c[i] + " ") ;
       }
    }
}

  • 编写一个方法,合并两个数组,并以升序返回合并后的值
import java.util.Arrays;
/**
 * 编写一个方法,合并两个数组,并以升序返回合并后的值
 */
public class ArrayMerge {
    public static int [] arrayMerge(int [] a, int [] b){
        int size = a.length + b.length ;
        int [] array = new int [size] ;
        for(int i=0; i<a.length; i++){
            array[i] = a[i] ;
        }
        for(int j=a.length; j<size; j++){
            array[j] = b[j-a.length] ;
        }
        Arrays.sort(array) ; //升序排列
        return array ;
    }
    public static void main(String[] args){
        int [] a =  new int [] {1,3,2,4,9,5,7} ;
        int [] b = new int [] {8,10,6} ;
        int [] result = arrayMerge(a,b) ;
        for(int i=0; i<result.length; i++){
            System.out.print(result[i] + " ") ;
        }
    }
}

  • 编写求解二元一次方程的方法,输出方程组的根的个数
import java.util.Scanner;
/**
 * 编写求解二元一次方程的方法,输出方程组的根的个数
 *
 */
public class SolveQuadratic {
    public static int solveQuadratic(double [] eqn, double [] roots){
        double discriminant = eqn[1] * eqn[1] - 4 * eqn[0] * eqn[1] ;
        if(discriminant < 0){ //无根
            return 0 ;
        }
        else if (discriminant == 0){ //1个根
            roots[0] = - eqn[1] / (2 * eqn[0]) ;
            roots[1] = -eqn[1] / (2 * eqn[0]) ;
            return 1 ;
        }
        else{ //2个根
            roots[0] = (-eqn[1] + Math.sqrt(discriminant)) / (2 * eqn[0])  ;
            roots[1] = (-eqn[1] - Math.sqrt(discriminant)) / (2 * eqn[0]) ;
            return 2 ;
        }
    }
    public static void main(String[] args){
        double [] eqn = new double [3] ;
        double [] roots = new double [2] ;
        Scanner input = new Scanner(System.in) ;
        for(int i=0; i<eqn.length; i++){
            eqn[i] = input.nextInt() ;
        }
        System.out.println("方程组根的个数:" + solveQuadratic(eqn,roots)) ;
    }
}

以上是关于Java中数组的使用(第一篇)的主要内容,如果未能解决你的问题,请参考以下文章

混合编程JNI之第一篇,Hello world

混合编程JNI之第一篇 Hello world

java (数组)

设计模式第一篇:概述耦合UML七大原则,详细分析总结(基于Java)

剑指offer系列刷题第一篇——寻找单身狗

mybatis之旅第一篇-初识mybatis