java - 无法使用java计算ArrayList中的数字

标签 java

我使用的列表如下所示:-

List<Integer> integerlist = new ArrayList<Integer>();

integerlist=primeFactors(numberToBERadical);

当我 sysOut 时,primeFactors 方法返回一些数字:-

System.out.println("integer list=="+integerlist);
integer list==[2, 2, 2, 3, 5]

我的问题是我想计算每个数字出现的次数,以便我可以像这样显示:-

2^3 * 3 * 5

最佳答案

您需要将每个因素与其出现的次数(指数)相关联。

要做到这一点,比列表更好的数据结构是 Map<Integer,Integer> .

假设您仍然得到 List来自您的primeFactors(numberToBERadical); (假设您无法更改它或由于某种原因不想更改)。

你可以这样做:

public static void main(String[] args) {
    List<Integer> list = new ArrayList<>();

    list.add(2);
    list.add(2);
    list.add(2);
    list.add(3);
    list.add(3);
    list.add(5);

    Map<Integer, Integer> factors = new HashMap<>();
    for(Integer fact: list){
        if(!factors.containsKey(fact)) { factors.put(fact, 1);}
        else {
            Integer value = factors.get(fact);
            factors.put(fact, ++value);
        }
    }
    System.out.println(factors);
}

打印:{2=3, 3=2, 5=1}

关于java - 无法使用java计算ArrayList中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14956926/

相关文章:

java - 将数据提交到 HttpServletResponse 后可以发送错误消息吗

java - 查找错误的CacheManager Spring ehcache

java - 防病毒软件如何以编程方式扫描已安装的 android 应用程序的代码(没有 root 权限)?

java - 如何在 intelliJ Idea 中设置 java.library.path

java - 当路径中的类时,Servlet 抛出 java.lang.ClassNotFoundException

java - Io异常: Oracle Error ORA-12650 in Oracle Cloud

java - Spring 和工厂对象

java - 监控文件更改

java - 为什么字符串不被识别为对象

java - Gradle多项目,如何处理不同的rootDirs