【发布时间】:2021-03-30 07:52:04
【问题描述】:
场景是我有一个类如下,
@Data
class Operation
{
private String id;
private String name;
private String description;
}
还有一个包含大量 Operation 实例的 ArrayList。
例如,ArrayList 中有五个实例,
{"id":"0001", "name":"up"}
{"id":"0002", "name":"down"}
{"id":"0003", "name":"left"}
{"id":"0004", "name":"left"}
{"id":"0005", "name":"up"}
想知道这个名字在ArrayList中改变了多少次,这种情况下,第二个名字是down的,和第一个不一样,改变次数是1,第三个名字也和第二个不一样name,那么变化次数是2,但是第四个名字和第三个一样,所以变化次数还是2,第五个和第四个不同,所以这个ArrayList的变化次数是3。
有没有不遍历ArrayList的方法来计算?
【问题讨论】:
-
也许在填充 ArrayList 时有一种计数方法,但如果不遍历 ArrayList,就没有办法做到这一点。
-
您可以遍历列表并继续检查当前名称值与以前的名称,这需要 O(n) 时间,这在许多情况下会更好。但是,如果不遍历列表,这将是困难的(或者是不可能的)
-
相关:Count the number of times values change in a series(我知道它是 Python,但我发誓大多数想法也可以在 Java 中使用)。请搜索更多。
标签: java list algorithm arraylist