java代码库02——数组

拒绝窘境,当你不停滞不前的时候,就已经在退步了。

Akino·杜菲     版本声明:原创内容,请勿转载,否则将追究法律责任!

1.基本数据类型的数组变量,直接打印的结果:

  打印的内容是[I@7852e922这种地址值,注意唯一不同的是,println这个方法对字符型的数组有特殊的处理方式:重载这个方法的结果是打印数组里的所有字符!

package com.test;

public class Practise2 {

    public static void main(String[] args) {
        byte[] a1 = new byte[2];
        short[] a2 = new short[2];
        char[] a3 = {'a','b','6'};
        int[] a4 = new int[5];
        float[] a5 = new float[4];
        long[] a6 = new long[5];
        boolean[] a7 = new boolean[3];
        double[] a8 = new double[3];
        
        System.out.println(a1);
        System.out.println(a2);
        System.out.println(a3);
        System.out.println(a4);
        System.out.println(a5);
        System.out.println(a6);
        System.out.println(a7);
        System.out.println(a8);
        

    }

}
View Code

2.数组的默认值

  注意:数组的默认值是0,注意如何给数组赋值

/*
    验证:
        1.数组的默认值:
        2.数组元素的访问方式:
            数组名[索引值]
    练习:定义基本数据类型的数组,有2个元素.考察他们的默认值:
        
*/
public class ArrayDemo3{
    public static void main(String[] args){
        //定义一个数组
        int[] arr = new int[3];  
        //在堆空间中开辟3个空间,每个空间可以存放一个int型元素.初始值为0.
        //然后把首元素的地址(也就是整个数组的地址)赋值给栈空间中的变量arr
        
        //验证默认值:
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
        
        //如何对数组元素赋值:
        arr[2] = 10;
        System.out.println(arr[2]);
        
        arr[2] = 20;
        System.out.println(arr[2]);
        
    }
}
View Code

3.数组的默认值

  注意:引用数组默认值为null,就是String[ ]的默认值是null,剩下是0.0,0,false之类

/*
    考察基本数据类型和引用数据类型的数组的默认值!
    整数:0
    浮点数:0.0
    布尔型:false
    引用数据类型:null
*/
public class ArrayDemo4{
    public static void main(String[] args){
        byte[] arr1 = new byte[2];
        System.out.println(arr1[0]);
        System.out.println(arr1[1]);
        System.out.println("------------------");
        char[] arr2 = new char[2];
        System.out.println(arr2[0]);
        System.out.println(arr2[1]);
        System.out.println("------------------");
        short[] arr3 = new short[2];
        System.out.println(arr3[0]);
        System.out.println(arr3[1]);
        System.out.println("------------------");
        int[] arr4 = new int[2];
        System.out.println(arr4[0]);
        System.out.println(arr4[1]);
        System.out.println("------------------");
        long[] arr5 = new long[2];
        System.out.println(arr5[0]);
        System.out.println(arr5[1]);
        System.out.println("------------------");
        boolean[] arr6 = new boolean[2];
        System.out.println(arr6[0]);
        System.out.println(arr6[1]);
        System.out.println("------------------");
        float[] arr7 = new float[2];
        System.out.println(arr7[0]);
        System.out.println(arr7[1]);
        System.out.println("------------------");
        double[] arr8 = new double[2];
        System.out.println(arr8[0]);
        System.out.println(arr8[1]);
        System.out.println("------------------");
        //定义字符串数组
        String[] arr9 = new String[2];
        System.out.println(arr9[0]);
        System.out.println(arr9[1]);
        
    }
    
    
}
View Code

4.数组的遍历(1)

  注意:也可以使用增强for更容易

package com.test;

public class Practise4 {

    public static void main(String[] args) {
        int[] arr = { 1, 2, 3, 4, 56, 6, 5, 4, 2, 1, 1 };

        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }

    }

}
View Code

5.数组的遍历(2)

  注意:数组遍历每个数字之间打个逗号,最后一个数字不需要有逗号,所以需要加入一个判断,就是数组长度 i !=arr.length的时候打逗号

package com.test;

public class Practise5 {

    public static void main(String[] args) {
        int[] arr = {1,2,3,5,6};
        
        printArray(arr);    

    }
    
    public static void printArray(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]);
            if(i!=arr.length-1){
                System.out.print(",");
            }
        }
    }
}
View Code

6.自定义数组的长度,输入最大值和最小值,并自定义取的长度

  方式:定义方法打印、最大值、最小值,然后录入两个数据,求两个数据之间的随机个数的数值,利用了math.random()*(max-min+1)+min

/*
    数组长度和元素都是随机产生.求最值:
    元素的范围是键盘录入的.
*/
import java.util.Scanner;

public class ArrayDemo10{
    public static void main(String[] args){
        Scanner s = new Scanner(System.in);
        System.out.print("输入元素的最小值: ");
        int min = s.nextInt();
        
        System.out.print("输入元素的最大值: ");
        int max = s.nextInt();
        
        //随机产生一个数,当成数组的长度
        int len = (int)(Math.random() * 50 + 1);
        //创建数组
        int[] arr = new int[len];

        //遍历数组,用随机数给元素赋值
        for(int i = 0;i<arr.length;i++){
            arr[i] = (int)(Math.random() * (max - min + 1) + min);
        }
                
        //打印随机数组
        System.out.println("产生的随机数组是: ");
        printArray(arr);
        
        //求最值:
        System.out.println("最大值是: "+ getMax(arr));
        System.out.println("最小值是: "+ getMin(arr));
        
    }
    
    //自定义方法,打印数组的元素
    public static void printArray(int[] arr){
        for(int i = 0;i<arr.length;i++){
            System.out.print(arr[i]);
            if(i != arr.length - 1){
                System.out.print(",");
            }
        }
        //最好在最后加一个换行,
        System.out.println();
    }
    
    //getMax
    public static int getMax(int[] arr){
        int max = arr[0];
        for(int i = 1;i<arr.length;i++){
            if(arr[i] > max){
                max = arr[i];
            }
        }
        return max;
    }
    
    //getMin
    public static int getMin(int[] arr){
        int min = arr[0];
        for(int i = 1;i<arr.length;i++){
            if(arr[i] < min){
                min = arr[i];
            }
        }
        return min;
    }
}
View Code

7.获取指定元素的第一次出现的索引值

  思路:定义一个方法判断是否相等返回i还是-1,main函数中加个条件判断,刚才返回的值要是i就有,打印一下,要是-1就每一,索引不会有负数的。

/*
 *普通查找:获取指定元素第一次出现的索引
 * 普通查找:就是从前往后遍历查找
 * 二分查找:要求数组必须是已经排好序的
 * 
 */
package com.test;

public class Practise8 {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5,30,6};
        int value = 30;
        int res = getIndex(arr, value);
        if(res==-1){
            System.out.println("没有找到");
        }else{
            System.out.println(value+"第一次出现的索引值是:"+res);
        }
    }

    public static int getIndex(int[] arr,int value){
        for(int i = 0 ;i<arr.length;i++){
            if(arr[i] == value){
                return i;
            }
        }
        return -1;
    }
    
    
}
View Code

8.数组的复制

    思路:遍历原数组,然后让新数组的每个元素和原数组相等,然后打印一下,当然java.lang包下也已经为我们写好了一个数组复制,arr.clone();

/*
定义方法实现:数组的复制:重点考察是否需要返回值

既然是复制,说明产生了一个新的数组.这个新的数组和源数组的长度一致,各个元素都相同.
返回值:就是产生的新的数组!! 类型是:int[]

*/
public class ArrayDemo12{
    public static void main(String[] args){
        int[] src = {9,5,2,7};
        //调用方法获取一个src的副本
        int[] copy = copyArray(src);
        
        //
        printArray(src);
        printArray(copy);
        //
        System.out.println(src == copy);//false
    }
    
    //
    public static void printArray(int[] arr){
        for(int i = 0;i<arr.length;i++){
            System.out.print(arr[i]);
            if(i != arr.length -1){
                System.out.print(",");
            }
        }
        System.out.println();
    }
    
    
    //用于实现:数组的复制
    //返回值类型:int[]
    //形参列表:int[] src
    public static int[] copyArray(int[] src){
        //创建一个和src一样大的数组,遍历源数组,用源数组的元素给新数组元素赋值.
        int[] copy = new int[src.length];
        //遍历
        for(int i = 0;i<src.length;i++){
            copy[i] = src[i];
        }
        //
        return copy;
    }
}
View Code

8.定义方法求阶乘

    思路:for循环,阶乘思想,就是阶乘的值在遍历过程中 i 要从1开始取。

/*
    1.定义方法,用于计算一个int数值的阶乘
    //返回值类型:int
    //形参列表:int value
*/

public class HomeworkDemo1{
    public static void main(String[] abc){
        //

        
        int res = getNum(5);
        System.out.println(res);
        
        //
        System.out.println(getNum(5));
    }
    
    //返回值类型:int
    //形参列表:int value
    public static int getNum(int value){
        //求阶乘思想:
        int res = 1;
        for(int i = 1;i<=value;i++){
            res *= i;
        }
        return res;
    }
}
View Code

9.指定起始值和最终值,随机取一个数

    思路:利用math.random(),

/*
 * 练习:从键盘录入起始值和结束值,获取指定范围的随机值
 * 定义方法,用于获取指定范围内的一个随机值(int)
 * 
 */
package com.test;

import java.util.Scanner;

public class Practise11 {

    public static void main(String[] args) {
        Scanner scanner= new Scanner(System.in);
        System.out.println("请输入起始值: ");
        int a = scanner.nextInt();
        System.out.println("请输入最终值: ");
        int b = scanner.nextInt();
        System.out.println("随机值是 "+getRandom(a, b));
    }
    
    public static int getRandom(int a,int b){
        return (int)(Math.random()*(a-b+1)+b);
    }
}
View Code

你不愿意改变的时候,往往就是你最需要改变的时候。让你变得更加专业,成为一个it精英。只有经历才能让我们更加认识自己,不经历历练就无法看见阳光。 欢迎加入BigBang高级大数据之路,qq群号:945694891

原文地址:https://www.cnblogs.com/akinodoo/p/10066168.html