diff a/test/jdk/java/util/Collections/Frequency.java b/test/jdk/java/util/Collections/Frequency.java --- a/test/jdk/java/util/Collections/Frequency.java +++ b/test/jdk/java/util/Collections/Frequency.java @@ -1,7 +1,7 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. @@ -24,22 +24,26 @@ /* * @test * @bug 4193200 * @summary Basic test for Collections.frequency * @author Josh Bloch + * @library /test/lib */ +import jdk.test.lib.valueclass.VClass; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedList; import java.util.List; public class Frequency { static final int N = 100; + public static void main(String[] args) { test(new ArrayList()); test(new LinkedList()); + testValue(); } static void test(List list) { for (int i = 0; i < N; i++) for (int j = 0; j < i; j++) @@ -48,6 +52,17 @@ for (int i = 0; i < N; i++) if (Collections.frequency(list, i) != i) throw new RuntimeException(list.getClass() + ": " + i); } + + static void testValue() { + List values = new ArrayList<>(); + for (int i = 0; i < N; i++) + for (int j = 0; j < i; j++) + values.add(new VClass(i, new int[] { i })); + Collections.shuffle(values); + for (int i = 0; i < N; i++) + if (Collections.frequency(values, new VClass(i, new int[] { i })) != i) + throw new RuntimeException("value frequency: " + i); + } }