当前位置: 首页 > 知识库问答 >
问题:

如何打印差异为1的列表中元素的间隔?

汪晟睿
2023-03-14

我在下面写的代码保存了进程在ArrayList中拥有cpu时的时间戳。如果(timeStamps.get(i)-时间戳。get(i-1)==1)进程当时拥有CPU。例如,如果列表如下所示:

List[0] = 5
List[1] = 6
List[2] = 7
List[3] = 10
List[4] = 11
List[5] = 12
List[6] = 20
List[7] = 21
List[8] = 22

控制台的输出应该是这样的:

CPU time: 3ms
Non-CPU time: 2ms
CPU time: 3ms
Non-CPU time: 7ms
CPU time: 3ms

我怎么能这么做呢?这就是我迄今为止所做的

long ms = 1000000;
ArrayList<Long> timeStamps = new ArrayList<Long>();
long startStamp = System.nanoTime()/ms;

timeStamps.add(startStamp);

for (int i = 1; i > 0; i++) {
    long nextStamp = System.nanoTime()/ms;
    if(nextStamp - startStamp >= 1) {
        timeStamps.add(nextStamp);
        startStamp = nextStamp;
    }
    if(timeStamps.size() == 20) {
        i = -10;
    }
}

共有1个答案

商麒
2023-03-14

我解决了:)这就是我的意思,很抱歉,我不能准确地表达我想要的。

int time = 1;
for (int j = 1; j < timeStamps.size(); j++) {
    if (timeStamps.get(j) - timeStamps.get(j -1) == 1) {
        time++;
    } else {
        System.out.println("CPU time: " + time + " ms");
        time = 1;
        System.out.println("Non-CPU time: " + ((timeStamps.get(j) - timeStamps.get(j-1))-1) + " ms");
    }
}
System.out.println("CPU time: " + time + " ms");
 类似资料:
  • 我在下面写的代码保存了进程在中拥有cpu时的时间戳。如果进程当时拥有CPU。例如,如果列表如下所示: 控制台的输出应该是这样的: 我怎么能这么做呢?这就是我迄今为止所做的

  • 然后在main方法中,我尝试创建一个列表并打印出其中的元素。 没有语法错误,但当我尝试运行上面的代码时,终端不会返回任何内容。

  • 问题内容: 给定一个数字列表,人们如何发现第()个元素与其第()个元素之间的差异? 使用表达式还是列表理解更好? 例如: 给定一个列表,我们的目标是要找到一个列表,因为,等等。 问题答案:

  • 问题内容: 我正在尝试打印a的所有元素,但是它打印的是指针而不是值。 这是我的打印代码… 任何人都可以帮助我,为什么它没有体现出要素的价值。 问题答案: 这是有关打印出列表组件的一些示例: public class ListExample { } class Model { }

  • 我对流完全陌生,目前正在尝试解决这个任务,我有以下两个列表:

  • 问题内容: 我有计算纯python中相邻元素之间差异的算法: 有什么办法可以用Numpy重写此功能? 问题答案: 有方法: 退货