java-数组,排序 数组动态初始化 数组的常见问题 二维数组及遍历 一维数组存放二维数组 数组的大量案例19

package com.demo.data;

public class arr {
public static void main(String[] args) {
int[] arr = {11, 22, 33, 44,999};
int max = m(arr);
System.out.println("最大值"+max);
}

public static int m(int[] arr) {
// 数组的数据格式
// 1完整格式
// 数据类型[] 名字 = new 数据类型[]{元素1,元素2....}
// 2缩写
// 数据类型[] 名字 = {元素1,元素2....}
double[] arr2 = {11, 22, 33, 44};
//打印结果是数组的十六进制内存地址
//@分隔符,[表示是数组类型,I表示是int类型
System.out.println(arr);//[I@5fd0d5ae
System.out.println(arr2);//[D@2d98a335
// 打印第一个索引的数组
System.out.println(arr[0]);
for (int i = 1; i <= arr[0]; i++) {
System.out.println("数组循环" + i);
}
// 按数组的索引遍历
for (int i = 1; i <= arr.length; i++) {
System.out.println("数组遍历" + i);
}
// 计算最大值
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
}

  案例

package com.demo.data;

public class arr2 {
    public static void main(String[] args) {
        int[] arr = {100, 50, 20, 90, 90};
        int max = arr1(arr);
        System.out.println("最高分:" + max);
        int min = arr2(arr);
        System.out.println("最低分:" + min);
        int gentle = getSum(arr);
        System.out.println("总分:" + gentle);
        double avg = averAge(arr);
        System.out.println("平均分:" + avg);
        int statistics = statistics(arr);
        System.out.println("统计多余平均值的个数:" + statistics);
        int overtop = overtop(arr);
        System.out.println("统计高余平均值的个数:" + overtop);
    }

    //    最高分
    public static int arr1(int[] arr) {
        int max = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] > max) {
                max = arr[i];
            }
        }
        return max;
    }

    //    最低分
    public static int arr2(int[] arr) {
        int min = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] < min) {
                min = arr[i];
            }
        }
        return min;
    }

    //    求和
    public static int getSum(int[] arr) {
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        return sum;
    }

    //    平均分
    public static double averAge(int[] arr) {
        int sum = getSum(arr);
        double avg = (sum * 1.0) / arr.length;
        return avg;
    }

    //    统计低余平均值的个数
    public static int statistics(int[] arr) {
//        定义计时器
        int count = 0;
        double avg = averAge(arr);
        for (int i = 0; i<arr.length;i++){
            if (arr[i]<avg){
                count ++;
            }
        }
        return count;
    }

    //    统计高余平均值的个数
    public static int overtop(int[] arr) {
//        定义计时器
        int count = 0;
        double avg = averAge(arr);
        for (int i = 0; i<arr.length;i++){
            if (arr[i]>avg){
                count ++;
            }
        }
        return count;
    }

}

  

 

 

package com.demo.data;

public class arr4 {
    public static void main(String[] args) {
//        int类型的初始值
        int arr[] = new int[3];
        for (int i = 0;i<arr.length;i++){
            System.out.println(arr[i]);//0
        }
//        double类型的初始值
        double ar2[] = new double[3];
        for (int i = 0;i<ar2.length;i++){
            System.out.println(ar2[i]);//0.0
        }
        //        boolean类型的初始值
        boolean ar3[] = new boolean[3];
        for (int i = 0;i<ar3.length;i++){
            System.out.println(ar3[i]);//false
        }
        //        String类型的初始值
        String ar4[] = new String[3];
        for (int i = 0;i<ar4.length;i++){
            System.out.println(ar4[i]);//null
        }
        //        char类型的初始值
        char ar5[] = new char[3];
        for (int i = 0;i<ar5.length;i++){
            System.out.println(ar5[i]);// ' '空白字符
        }
    }
}

  

 

方法的传递问题:

 

 

 

 

 数组的常见问题:

  1.索引越界异常:

package com.demo;

public class unusual {
    public static void main(String[] args) {
        int arr[] ={33,222,444};
        System.out.println(arr[10]);//ArrayIndexOutOfBoundsException
    }
}

  

  2.空指针异常:

package com.demo;

public class unusual {
    public static void main(String[] args) {
        int arr[] ={33,222,444};
        arr = null;
        System.out.println(arr[10]);//NullPointerException
    }
}

  二维数组的遍历:

package com.demo.data;

public class arr6 {
    public static void main(String[] args) {
        int arr[][] = {
                {1, 1, 1, 1},
                {1, 1, 1, 1},
                {1, 1, 1, 1},
        };
        tow(arr);
        int data = one(arr);
        System.out.println(data);
    }

    //二维数组需要遍历到一维数组,再遍历里面的内容
    private static void tow(int arr[][]) {

//        遍历二维数组获取一维数组
        for (int i = 0; i < arr.length; i++) {
//            arr[i]就是一维数组
//            继续遍历一维数组,获取元素
            for (int j = 0; j < arr[i].length; j++) {
                System.out.println(arr[i][j]);
            }
        }
        System.out.println(arr[0]);
    }

    //    二维数组求和
    private static int one(int arr[][]) {
        int data = 0;
//        遍历二维数组获取一维数组
        for (int i = 0; i < arr.length; i++) {
//            arr[i]就是一维数组
//            继续遍历一维数组,获取元素
            for (int j = 0; j < arr[i].length; j++) {
                data += arr[i][j];
            }
        }
        return data;
    }
}

  逢七过案例:

package com.demo.data;

public class arr7 {
    public static void main(String[] args) {
        seven();
    }
//    逢七过
    private static void seven() {
        for (int i = 1; i <= 100; i++) {
            int ge = i %10;
            int shi = i /10%10;
            if (ge ==7 || shi ==7||i%7 ==0){
                System.out.println("过");
            }else {
                System.out.println(i);
            }
        }
    }
}

  数组求和:

package com.demo.data;

public class arr8 {
    public static void main(String[] args) {
        int arr[] ={68,27,95,88,171,996,51,210};
        int sum = 0 ;
        for (int i = 0; i <arr.length ; i++) {
            int ge = i/10;
            int shi = i/10%10;
            if (ge /7==0&&shi/7==0&&arr[i]%2==0){
                sum += arr[i];
            }
        }
        System.out.println(sum);
    }
}

  比较两个数组是否完全相同:

package com.demo.data;

public class arr9 {
public static void main(String[] args) {
boolean arr = arr();
System.out.println(arr);
}
// 比较两个数组是否相等
private static boolean arr() {
int arr[] = {11,22,33};
int arr2[] ={11,22,22};
// 1,判断两个的长度是否相等
if (arr.length != arr2.length){
return false;
}
// 2.遍历数组
for (int i = 0; i < arr.length; i++) {
// 3.判断数组内容是否相等
if (arr[i]!=arr2[i]){
return false;
}
}
return true;
}
}

  键盘录入一个值,并且在数组比对,有则返回其下标值,有重复值时,返回一个数组:

键盘录入一个值,并且在数组比对,有则返回其下标值:
package com.demo.data; import java.util.Scanner; public class arr10 { public static void main(String[] args) { // 1定义数组 int arr[] = {11,855,6,6,6,6,2163,33,131,}; // 9.定义Scanner方法 Scanner sc = new Scanner(System.in); // 10.定义键盘录入 int num = sc.nextInt(); // 11.调用方法,并且赋与新值 int index =Index(num,arr); // 12.打印是否正确 System.out.println(index); } // 2.创建方法 public static int Index(int num,int arr[]) { // 3定义index -1 int index = -1; // 4遍历循环 for (int i = 0; i < arr.length; i++) { // 5.判断数组里面是否有该元素 if (arr[i] == num){ // 6.有则将下标重新赋予index index = i; // 7.找到正确下标后,结束循环遍历 break; } } // 8.return数值出去 return index; } }
键盘录入一个值,并且在数组比对,有则返回其下标值,有重复值时,返回一个数组:
package com.demo.data;

public class arr12 {
public static void main(String[] args) {
int arr[] = {11, 855, 6, 6, 6, 6, 2163, 33, 131,};
int Index[] = Index(6, arr);
if (Index.length == 0) {
System.out.println("您查找的元素不存在");
} else {
for (int i = 0; i < Index.length; i++) {
System.out.println(Index[i]);
}
}
}

// 键盘录入一个值,并且在数组比对,有则返回其下标值,有重复值时,返回一个数组:
private static int[] Index(int num, int[] arr) {
// 1.统计一个值出来,方便后面设置数组的长度
int count = 0;
// 2.遍历统计重复次数
for (int i = 0; i < arr.length; i++) {
if (arr[i]==num){
count++;
}
}
// 3.new一个新数组,数组里存放刚刚的统计值,设置数组长度
int res[] = new int[count];
// 4.设置下标为0
int index = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i]==num){
// 5.如果有重复的,将下标赋值给res这个数组存储起来
res[index] = i;
index++;
}
}
return res;
}
}

  数据交换:

package com.demo.data;

public class arr13 {
    public static void main(String[] args) {
        int arr[] = {11,22,33,44,55,66};
        int temp = arr[0];
        arr [0] = arr[5];
        arr[5] = temp;
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}

  去掉最高分和最低分,求剩下的平均分

package com.demo.data;

import java.util.Scanner;

public class arr14 {
public static void main(String[] args) {
int[] arr = intData();
int num = num(arr);
int max = max(arr);
int min = min(arr);
avg(arr, num, max, min);
}

private static void avg(int[] arr, int num, int max, int min) {
System.out.println("总分" + num);
System.out.println("最高分" + max);
System.out.println("最低分" + min);
double avg = ((num - max - min) * 1.0) / (arr.length - 2);
System.out.println("平均分" + avg);
}

private static int min(int[] arr) {
int min = arr[0];
for (int i = 0; i < arr.length; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}

private static int max(int[] arr) {
int max = arr[0];
for (int i = 0; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}

private static int num(int[] arr) {
int num = 0;
for (int i = 0; i < arr.length; i++) {
num += arr[i];
}
return num;
}

private static int[] intData() {
int arr[] = new int[6];
Scanner sc = new Scanner(System.in);
System.out.println("请输入分数");
for (int i = 0; i < arr.length; i++) {
System.out.println("请第" + (i + 1) + "位评委打分");
int score = sc.nextInt();
if (score>=0 && score <100){
arr [i] = score;
}else {
System.out.println("您的输入有误");
}
}
return arr;
}
}

  随机生成验证码:

package com.demo.data;

import java.util.Random;
import java.util.Scanner;

public class arr15 {
public static void main(String[] args) {
// BAIDU();
char[] verify = randomNumber();
Random r = new Random();
String code = "";
for (int i = 0; i <= 5; i++) {
int index = r.nextInt(verify.length);
code += verify[index];
}
System.out.println("生成的验证码为----" + code);
System.out.println("请输入验证码");
Scanner sc = new Scanner(System.in);
String checlCode = sc.next();
if (checlCode.equalsIgnoreCase(code)) {
System.out.println("验证成功");
} else {
System.out.println("验证失败");
}
}

// 1.定义随机数
private static char[] randomNumber() {
// 打印字符char时,不会看到地址值,直接看到内容
char verify[] = new char[26 + 26 + 10];
int index = 0;
for (char c = 'a'; c <= 'z'; c++) {
verify[index] += c;
index++;
}
for (char c = 'A'; c <= 'Z'; c++) {
verify[index] += c;
index++;
}
for (char c = '0'; c <= '9'; c++) {
verify[index] += c;
index++;
}
return verify;
}

//-----------------------------------
// 百度方法,不推荐,用上面的好一点
// 方法一
private static void BAIDU() {
//定义一个随机生成数技术,用来生成随机数
Random yzm = new Random();
//定义一个String变量存放需要的数据,一共58位
String yzm1 = "1234567890abcdefghijklmnopqrstuvwxwzABCDEFGHIJKLMNOPQRSTUVWXYZ";
//定义一个空的Atring变量用来接收生成的验证码
String yzm3 = "";
for (int i = 0; i < 5; i++) {
//随机生成0-57之间的数,提供索引位置
int a = yzm.nextInt(yzm1.length());
//用get 和提供的索引找到相应位置的数据给变量
yzm3 += yzm1.charAt(a);
}
System.out.println("用String常用API-charAit生成的验证码为:" + yzm3);
}

}
posted @ 2023-03-03 10:36  文采呱呱  阅读(36)  评论(0编辑  收藏  举报