Java数组基础题

一、定义一个含有五个元素的数组,并为每个元素赋值,求数组中所有元素的最小值 操作步骤:

1.定义5个元素数组

2.可以使用初始化数组的两种方式之一为数组元素赋值

3.遍历数组求数组中的最小值

public class Min {
    public static void main(String[] args) {
        int[] arr = {8,12,5,9,29};
        int min = arr[0];
        for (int i = 1;i < arr.length;i ++){
            if (i < arr[i]){
                min = arr[i];
            }
        }
        System.out.println("最小值是:" + min);
    }
}

二、创建一个长度为6的整数数组。请编写代码,随机生成六个0(包含)-100(不包 含)之间的整数存放到数组中,然后计算出数组中所有元素的和并打印。

import java.util.Random;

public class RandomSum {
    public static void main(String[] args) {
        int[] arr = new int[6];
        Random random = new Random();
        int sum = 0;

        for (int i = 0; i < arr.length; i++) {
            arr[i] = random.nextInt(100); // 生成0到100之间的随机整数
            sum += arr[i];
        }

        System.out.print("生成的数组为:");
        for (int num : arr) {
            System.out.print(num + " ");
        }

        System.out.println("\n数组中所有元素的和为:" + sum);
    }
}

三、需求:求出数组中索引与索引对应的元素都是奇数的元素

分析: 1、遍历数组

2、判断索引是否是奇数(索引 % 2 != 0)

3、判断索引对应的元素是否是奇数(arr[索引] % 2 != 0)

4、满足条件输出结果

/**
 * @author Administrator
 */
public class OodNumber{
    public static void main(String[] args) {
        int[] arr = {1, 4, 5, 7, 15, 16, 17, 19, 21};

        System.out.println("数组中索引和对应元素都是奇数的元素为:");
        for (int i = 0; i < arr.length; i++) {
            if (i % 2 != 0 && arr[i] % 2 != 0){
                System.out.println(arr[i]);
            }
        }
    }
}

四、按要求在main方法中完成以下功能:

a. 定义一个长度为5的int型数组arr,提示用户输入5个1-60之间的数字作为数组元素

b. 生成2-10(范围包含2和10)之间的随机数num

c. 遍历数组arr,筛选出数组中不是num倍数的元素并输出

(输入的数组元素范围包括1和60,不需要代码判断)

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

public class Temp1 {
    public static void main(String[] args) {
        int[] arr = new int[5];
        Scanner scanner = new Scanner(System.in);
        Random random = new Random();

        System.out.println("请输入5个1-60之间的数字作为数组元素:");
        for (int i = 0; i < arr.length; i++) {
            arr[i] = scanner.nextInt();
        }

        int num = random.nextInt(9) + 2; // 生成2-10之间的随机数

        System.out.println("生成的随机数为:" + num);
        System.out.print("筛选出的不是" + num + "倍数的元素为:");
        for (int element : arr) {
            if (element % num != 0) {
                System.out.print(element + " ");
            }
        }
    }
}

五、.有一个数组int[] arr = {9,1,3,4,54,56,23,22,20,43,45,78};,要求打印数组中能被6整除的 元素。

public class Temp2 {
    public static void main(String[] args) {
        int[] arr = {9,1,3,4,54,56,23,22,20,43,45,78};
        System.out.println("输出能被6整除的元素:");
        for (int i = 0;i < arr.length;i ++){
            if (arr[i] % 6 == 0){
                System.out.print(arr[i] + " ");
            }
        }
        System.out.println();
    }
}

六、定义一个长度为20的数组,元素为20-40的随机数,要求判断指定元素在数组中出现 的次数,指定元素为键盘录入范围为20-40之间。

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

public class Temp3 {
    public static void main(String[] args) {
        int[] arr = new int[20];
        Random random = new Random();
        Scanner scanner = new Scanner(System.in);

        //生成随机数组
        for (int i = 0;i < arr.length;i ++){
            arr[i] = 20 + random.nextInt();   //生成20到40之间的随机数
        }

        //键盘录入指定元素
        System.out.println("请输入一个20到40之间的整数作为指定元素:");
        int target = scanner.nextInt();

        //统计指定元素出现次数
        int count = 0;
        for (int m : arr){
            if (m == target){
                count++;
            }
        }
        System.out.println("指定元素" + target + "出现的次数" + count);
    }
}

七、现有一个整数数组,数组中的每个元素都是[0-9]之间的数字,从数组的最大索引位置开始到最小索引位置,依次表示整数的个位、十位、百位.......依次类推。请编写程序计算,这个数组所表示的整数值

数组:{2,1,3,5,4}

表示的整数为21354(注意是整数类型的两万一千三百五十四,不是字符串拼起来的)

 

public class Temp4 {
    public static void main(String[] args) {
        int[] arr = {2,1,3,5,4};
        int value = calculateIntegerValue(arr);

        System.out.println("数组表示的整数值为:" + value);
    }

    private static int calculateIntegerValue(int[] arr) {
        int value = 0;
        int multiplier = 1;

        for (int i = arr.length - 1; i >= 0; i--) {
            value += arr[i] * multiplier;
            multiplier *= 10;
        }

        return value;
    }
}

### Java数组相关算法目及解答 #### 1:向已排序数组中插入新元素并保持有序 给定一个已经按升序排列的整数数组 `nums` 和一个新的整数值 `newElement`,将其插入到数组中的适当位置以维持其顺序。 ```java import java.util.Arrays; public class InsertIntoSortedArray { public static void main(String[] args) { int[] nums = {11, 22, 33, 44, 55}; int newElement = 30; // 创建新的数组,长度加1 int[] newNums = Arrays.copyOf(nums, nums.length + 1); // 找到合适的位置插入新元素 int index = findInsertPosition(newNums, newElement); for (int i = newNums.length - 1; i > index; i--) { newNums[i] = newNums[i - 1]; } newNums[index] = newElement; System.out.println("插入后的数组:" + Arrays.toString(newNums)); } private static int findInsertPosition(int[] array, int value) { for (int i = 0; i < array.length; i++) { if (array[i] >= value || array[i] == 0) { return i; } } return array.length - 1; } } ``` 此程序通过找到适合的新元素位置来维护数组的升序特性[^1]。 --- #### 2:实现冒泡排序 编写一段代码,利用冒泡排序对任意无序数组进行排序。 ```java public class BubbleSortExample { public static void main(String[] args) { int[] num = {12, 13, 16, 11, 25, 127, 15}; for (int i = 0; i < num.length - 1; i++) { for (int j = 0; j < num.length - 1 - i; j++) { if (num[j] > num[j + 1]) { int temp = num[j]; num[j] = num[j + 1]; num[j + 1] = temp; } } } System.out.println("排序后的数组:"); for (int element : num) { System.out.print(element + " "); } } } ``` 上述代码实现了经典的冒泡排序逻辑,逐步比较相邻元素并将较大的值移至右侧[^2]。 --- #### 目3:查找特定字符是否存在 在一个预定义的字符数组中,判断某个输入字符是否存在于该数组中。假设字符数组已经是升序排列。 ```java public class KoiFishWordSearcher { public static void main(String[] args) { char[] koiFishWords = {'一', '今', '地', '定', '年', '开', '我', '果', '火', '爱', '结', '花', '遍'}; char targetChar = '果'; boolean isFound = binarySearch(koiFishWords, targetChar); if (isFound) { System.out.println(targetChar + " 存在于锦鲤字库中!"); } else { System.out.println(targetChar + " 不在锦鲤字库中!"); } } private static boolean binarySearch(char[] array, char key) { int low = 0; int high = array.length - 1; while (low <= high) { int mid = (low + high) / 2; if (key < array[mid]) { high = mid - 1; } else if (key > array[mid]) { low = mid + 1; } else { return true; } } return false; } } ``` 这段代码展示了如何使用二分查找快速定位目标字符的存在性[^4]。 --- #### 总结 以上三个例子分别涵盖了数组操作的核心技能——插入、排序以及高效检索。这些基础能力对于掌握更复杂的算法至关重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值