图片
Java Collections框架提供了一套全面的接口和类,以高效地处理集合。Collections工具类提供了一些鲜为人知的功能。
在本文中,我们将通过简单的示例来探讨这些鲜为人知的功能。
这个方法在Java中会返回一个不可变的列表,其中包含指定对象的n个副本。
Collections工具类中ncopies()的内部代码如下:
public static List nCopies(int n, T o) { if (n < 0) throw new IllegalArgumentException("List length = " + n); return new CopiesList<>(n, o); }
示例:
public static void nCopies(){ List tests = Collections.nCopies(10, "test"); System.out.println(tests);}
[test, test, test, test, test, test, test, test, test, test]
这个方法在Java中用于查找给定集合中指定元素的频率。
内部代码:
public static int frequency(Collection c, Object o) { int result = 0; if (o == null) { for (Object e : c) if (e == null) result++; } else { for (Object e : c) if (o.equals(e)) result++; } return result; }
示例:
public static void frequency(){ List integers = List.of(1, 2, 3, 4, 5, 1, 2, 3, 2, 3, 4); int frequency = Collections.frequency(integers, 3); System.out.println(frequency); } public static void singleton(){ Set singleElement = Collections.singleton("Hello world"); System.out.println(singleElement); singleElement.add("test"); } public static void singleton(){ Set singleElement = Collections.singleton("Hello world"); System.out.println(singleElement); singleElement.add("test"); }
这个方法在Java中提供了一种检查两个集合是否有任何共同元素的方法,如果有,则返回true,否则返回false。借助这个功能,开发者就可以快速查找集合中是否存在共同元素,而无需对它们进行迭代。
public static boolean disjoint(Collection c1, Collection c2) { }
示例:
public static void disjoint(){ List integers = List.of(1, 2, 3, 4); List integers1 = List.of(5, 6); boolean disjoint = Collections.disjoint(integers1, integers); System.out.println(disjoint); List integers2 = List.of(1, 2, 3, 4); boolean disjoint1 = Collections.disjoint(integers2, integers); System.out.println(disjoint1);}
truefalse
这个方法在Java中用于创建只包含单个元素的不可变集合。该方法返回一个仅包含单个元素的不可变Set。如果尝试添加或删除元素,就会出现异常。
内部代码:
public static Set singleton(T o) { return new SingletonSet<>(o);}
示例:
public static void singleton(){ Set singleElement = Collections.singleton("Hello world"); System.out.println(singleElement); singleElement.add("test"); }
[Hello world]Exception in thread "main" java.lang.UnsupportedOperationException at java.base/java.util.AbstractCollection.add(AbstractCollection.java:251) at misc.JavaCollectionFeatures.singleton(JavaCollectionFeatures.java:41) at misc.JavaCollectionFeatures.main(JavaCollectionFeatures.java:13)
这个方法在Java中将指定列表的元素向指定距离进行旋转。
该方法对列表中的元素执行回环变位(circular rotation),根据指定的距离有效地将它们向左或向右移动。
内部代码:
public static void rotate(List list, int distance) { if (list instanceof RandomAccess || list.size() < ROTATE_THRESHOLD) rotate1(list, distance); else rotate2(list, distance);}
示例:
public static void rotate(){ List integers = Arrays.asList(1, 2, 3, 4, 5, 3, 5, 5, 6); Collections.rotate(integers, 6); System.out.println(integers); List integers1 = Arrays.asList(1, 2, 3, 4, 5, 3, 5, 5, 6); Collections.rotate(integers1, 10); System.out.println(integers1); List integers2 = Arrays.asList(1, 2, 3, 4, 5, 3, 5, 5, 6); Collections.rotate(integers2, -3); System.out.println(integers2);}
[4, 5, 3, 5, 5, 6, 1, 2, 3][6, 1, 2, 3, 4, 5, 3, 5, 5][4, 5, 3, 5, 5, 6, 1, 2, 3]
在本文中,我们探讨了Collections工具类的一些鲜为人知的功能。虽然Java Collections工具类提供了丰富的功能,但有一些鲜为人知的功能在某些情况下对开发者可能会很有用。
本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-86990-0.htmlJava中五个鲜为人知的Collections特性
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com
上一篇: 前端开发小技巧汇总