Java 如何使用记事本++;发现函数工作吗?

Java 如何使用记事本++;发现函数工作吗?,java,Java,对于一个包含随机数的较大字符串和单个数字,我如何找到每个数字的计数 我的做法: 从第一个数字开始查找该数字的计数,并将该数字并行存储到另一个数组/字符串中 对于第二个数字,首先在并行数组中搜索是否存在,如果不超过主字符串中的find count 继续 还有其他更快更有效的方法吗?因为我使用的是notepad/notepad++find函数,与我的方法相比,它的运行速度非常快 代码: List List=new ArrayList(); 列表子列表=新的ArrayList(); 对于(int i=

对于一个包含随机数的较大字符串和单个数字,我如何找到每个数字的计数

我的做法:

  • 从第一个数字开始查找该数字的计数,并将该数字并行存储到另一个数组/字符串中
  • 对于第二个数字,首先在并行数组中搜索是否存在,如果不超过主字符串中的find count
  • 继续
  • 还有其他更快更有效的方法吗?因为我使用的是notepad/notepad++find函数,与我的方法相比,它的运行速度非常快

    代码:

    List List=new ArrayList();
    列表子列表=新的ArrayList();
    
    对于(int i=0;i现在我们已经演示了您所拥有的,我们可以更好地分析情况

    看起来您不确定如何将计数与每个单独的元素关联。您正在增加计数,但它与任何项目都没有关联,这可能是最大的混淆因素

    这就是HashMap之类的东西工作得很好的地方

    在本例中,您希望将您找到的数字i与其自身的计数c相关联。第一次找到时,计数将从1开始,然后随着我们找到更多的数字而递增。根据HashMap的思想,我们可以将您可以想到的任何整数作为键,然后将其计数c与您从该键获取的值相关联

        HashMap<Integer, Integer> findMap = new HashMap<Integer, Integer>();
    
        for (int i = 0; i < list.size(); i++) {
            int number = list.get(i);
    
            if (findMap.get(number) == null) {
                // we didn't find it in the map, so we put it in with a counter of 1
                findMap.put(number, 1);
            }
            else {
                // we already have inserted it, we should add 1 to counter
                findMap.put(number, findMap.get(number) + 1);
            }
        }
    
        //to get everything out of the HashMap
        for (Integer i : findMap.keySet()) {
            System.out.println(i + ": " + findMap.get(i));
        }
    
    HashMap findMap=newhashmap();
    对于(int i=0;i

    作为OP的一项任务,如果您有足够的经验,请确定代码插入部分的大O。

    不要用Java编写应用程序,这通常是一种非常可靠的快速获取应用程序的方法。这并使用一种聪明的方法存储数据。您能澄清您的问题吗?这有点难以理解。举个例子会很好.您是否编写了任何代码(伪代码或其他代码)来演示您的想法?Mark Nelson有一篇关于使用的不错的文章。您能展示一下您的方法吗
        HashMap<Integer, Integer> findMap = new HashMap<Integer, Integer>();
    
        for (int i = 0; i < list.size(); i++) {
            int number = list.get(i);
    
            if (findMap.get(number) == null) {
                // we didn't find it in the map, so we put it in with a counter of 1
                findMap.put(number, 1);
            }
            else {
                // we already have inserted it, we should add 1 to counter
                findMap.put(number, findMap.get(number) + 1);
            }
        }
    
        //to get everything out of the HashMap
        for (Integer i : findMap.keySet()) {
            System.out.println(i + ": " + findMap.get(i));
        }