📌  相关文章
📜  数组元素频率范围查询的Java程序(1)

📅  最后修改于: 2023-12-03 15:40:03.251000             🧑  作者: Mango

数组元素频率范围查询的Java程序介绍

在Java编程中,数组是一个十分常见的数据结构。本篇文章介绍的是关于数组元素频率范围查询的Java程序,即通过该程序可以查询指定数组中元素出现的频率范围。

程序主要思路

该程序主要思路为:通过HashMap计算数组中每个元素出现的次数,再遍历HashMap,找出出现次数最多和出现次数最少的元素。

代码实现
计算数组中每个元素出现的次数
int[] arr = {1, 2, 3, 4, 1, 2, 3, 2, 1};
Map<Integer, Integer> map = new HashMap<Integer, Integer>();

for (int i = 0; i < arr.length; i++) {
    if (map.containsKey(arr[i])) {
        map.put(arr[i], map.get(arr[i]) + 1);
    } else {
        map.put(arr[i], 1);
    }
}
找出出现次数最多和出现次数最少的元素
int maxNum = Integer.MIN_VALUE;
int minNum = Integer.MAX_VALUE;

List<Integer> maxList = new ArrayList<Integer>();
List<Integer> minList = new ArrayList<Integer>();

for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
    int key = entry.getKey();
    int value = entry.getValue();

    if (value > maxNum) {
        maxNum = value;
        maxList.clear();
        maxList.add(key);
    } else if (value == maxNum) {
        maxList.add(key);
    }

    if (value < minNum) {
        minNum = value;
        minList.clear();
        minList.add(key);
    } else if (value == minNum) {
        minList.add(key);
    }
}
完整代码
import java.util.*;

public class ArrayFrequency {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 1, 2, 3, 2, 1};
        Map<Integer, Integer> map = new HashMap<Integer, Integer>();

        for (int i = 0; i < arr.length; i++) {
            if (map.containsKey(arr[i])) {
                map.put(arr[i], map.get(arr[i]) + 1);
            } else {
                map.put(arr[i], 1);
            }
        }

        int maxNum = Integer.MIN_VALUE;
        int minNum = Integer.MAX_VALUE;

        List<Integer> maxList = new ArrayList<Integer>();
        List<Integer> minList = new ArrayList<Integer>();

        for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
            int key = entry.getKey();
            int value = entry.getValue();

            if (value > maxNum) {
                maxNum = value;
                maxList.clear();
                maxList.add(key);
            } else if (value == maxNum) {
                maxList.add(key);
            }

            if (value < minNum) {
                minNum = value;
                minList.clear();
                minList.add(key);
            } else if (value == minNum) {
                minList.add(key);
            }
        }

        System.out.println("数组中出现次数最多的元素是:" + maxList + ",出现了" + maxNum + "次");
        System.out.println("数组中出现次数最少的元素是:" + minList + ",出现了" + minNum + "次");
    }
}
运行结果

运行该程序的结果为:

数组中出现次数最多的元素是:[1, 2, 3],出现了3次
数组中出现次数最少的元素是:[4],出现了1次
总结

本篇文章介绍了关于数组元素频率范围查询的Java程序的实现方法。通过该程序可以计算一个数组中每个元素出现的次数,并找出出现次数最多和出现次数最少的元素。在实际应用中,该程序可以用于统计和分析数据中元素的分布情况。