`

Java中Collection与Collections的区别

    博客分类:
  • java
 
阅读更多

Java中Collection与Collections的区别

 

Collection是集合类的一个顶级接口,其直接继承接口有List与Set

而Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。

 

Collections提供方法

 

1) 排序(Sort)
使用sort方法可以根据元素的自然顺序 对指定列表按升序进行排序。

列表中的所有元素都必须实现 Comparable 接口。

此列表内的所有元素都必须是使用指定比较器可相互比较的


double array[] = {112, 111, 23, 456, 231 };
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
Collections.sort(list);
for (int i = 0; i < array.length; i++) {
   System.out.println(li.get(i));
}
//结果:112,111,23,456,231

 

备注:

implements Serializable, Comparable<Object>

@Override

public int compareTo(Object o) {

    return this.getDateline().compareTo(o.getDateline());

}

 

2) 混排(Shuffling)
混排算法所做的正好与 sort 相反: 它打乱在一个 List 中可能有的任何排列的踪迹。也就是说,基于随机源的输入重排该 List, 这样的排列具有相同的可能性(假设随机源是公正的)。这个算法在实现一个碰运气的游戏中是非常有用的。例如,它可被用来混排代表一副牌的 Card 对象的一个 List 。另外,在生成测试案例时,它也是十分有用的。
Collections.Shuffling(list)
double array[] = {112, 111, 23, 456, 231 };
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
Collections.shuffle(list);
for (int i = 0; i < array.length; i++) {
   System.out.println(li.get(i));
}
//结果:112,111,23,456,231
3) 反转(Reverse)
       使用Reverse方法可以根据元素的自然顺序 对指定列表按降序进行排序。
Collections.reverse(list)
double array[] = {112, 111, 23, 456, 231 };
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
Collections. reverse (list);
for (int i = 0; i < array.length; i++) {
   System.out.println(li.get(i));
}
//结果:231,456,23,111,112
4) 替换所以的元素(Fill)
使用指定元素替换指定列表中的所有元素。
String str[] = {"dd","aa","bb","cc","ee"};
for(int j=0;j<str.length;j++){
li.add(new String(str[j]));
}
Collections.fill(li,"aaa");
for (int i = 0; i < li.size(); i++) {
System.out.println("list[" + i + "]=" + li.get(i));

}
//结果:aaa,aaa,aaa,aaa,aaa

5) 拷贝(Copy)
用两个参数,一个目标 List 和一个源 List, 将源的元素拷贝到目标,并覆盖它的内容。目标 List 至少与源一样长。如果它更长,则在目标 List 中的剩余元素不受影响。
Collections.copy(list,li): 后面一个参数是目标列表 ,前一个是源列表
double array[] = {112, 111, 23, 456, 231 };
List list = new ArrayList();
List li = new ArrayList();
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
double arr[] = {1131,333};
String str[] = {"dd","aa","bb","cc","ee"};
for(int j=0;j<arr.length;j++){
li.add(new Double(arr[j]));
}
Collections.copy(list,li);
for (int i = 0; i <list.size(); i++) {
System.out.println("list[" + i + "]=" + list.get(i));
}
//结果:1131,333,23,456,231
6) 返回Collections中最小元素(min)
根据指定比较器产生的顺序,返回给定 collection 的最小元素。collection 中的所有元素都必须是通过指定比较器可相互比较的
Collections.min(list)
double array[] = {112, 111, 23, 456, 231 };
List list = new ArrayList();
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
Collections.min(list);
for (int i = 0; i <list.size(); i++) {
System.out.println("list[" + i + "]=" + list.get(i));
}
//结果:23
7) 返回Collections中最小元素(max)
根据指定比较器产生的顺序,返回给定 collection 的最大元素。collection 中的所有元素都必须是通过指定比较器可相互比较的
Collections.max(list)
double array[] = {112, 111, 23, 456, 231 };
List list = new ArrayList();
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
Collections.max(list);
for (int i = 0; i <list.size(); i++) {
System.out.println("list[" + i + "]=" + list.get(i));
}
//结果:456
8) lastIndexOfSubList
返回指定源列表中最后一次出现指定目标列表的起始位置
int count = Collections.lastIndexOfSubList(list,li);
double array[] = {112, 111, 23, 456, 231 };
List list = new ArrayList();
List li = new ArrayList();
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
double arr[] = {111};
String str[] = {"dd","aa","bb","cc","ee"};
for(int j=0;j<arr.length;j++){
li.add(new Double(arr[j]));
}
Int locations = Collections. lastIndexOfSubList (list,li);
System.out.println(“===”+ locations);
//结果 3
9) IndexOfSubList
返回指定源列表中第一次出现指定目标列表的起始位置
int count = Collections.indexOfSubList(list,li);
double array[] = {112, 111, 23, 456, 231 };
List list = new ArrayList();
List li = new ArrayList();
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
double arr[] = {111};
String str[] = {"dd","aa","bb","cc","ee"};
for(int j=0;j<arr.length;j++){
li.add(new Double(arr[j]));
}
Int locations = Collections.indexOfSubList(list,li);
System.out.println(“===”+ locations);
//结果 1
10) Rotate
根据指定的距离循环移动指定列表中的元素
Collections.rotate(list,-1);
如果是负数,则正向移动,正数则方向移动
double array[] = {112, 111, 23, 456, 231 };
List list = new ArrayList();
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
Collections.rotate(list,-1);
for (int i = 0; i <list.size(); i++) {
System.out.println("list[" + i + "]=" + list.get(i));
}
//结果:111,23,456,231,112

 

 

    public static String collectionToString(Collection<?> collection) {

        return collectionToString(collection, ",");

    }

 

    public static String collectionToString(Collection<?> collection, String split) {

        if(isEmpty(collection)) {

            return "";

        } else {

            StringBuffer strb = new StringBuffer();

            Iterator var3 = collection.iterator();

 

            while(var3.hasNext()) {

                Object obj = var3.next();

                strb.append(obj.toString()).append(split);

            }

 

            strb.setLength(strb.length() - 1);

            return strb.toString();

        }

    }

分享到:
评论

相关推荐

    Collection与Collections,Array与Arrays的区别

    Collection与Collections,Array与Arrays的区别 Collection与Collections的区别: Collection是一个接口,位于java.util包下,是各种集合结构的父接口。它提供了最基本的集合操作,如add、remove、contains等。...

    java collection framework

    ### Java Collection Framework 相关知识点 #### 一、引言 在 Java 领域,《Java Collection Framework》这本书被广泛认为是一本优秀的教程,尤其适合初学者了解集合框架的前世今生。通过本书的学习,读者不仅能...

    Java的Collection VS Collections - 揭秘数据操控的奥秘

    Java的Collection VS Collections

    浅谈Java中Collection和Collections的区别

    在Java编程语言中,`Collection`和`Collections`是两个重要的概念,它们在处理数据集合时扮演着不同的角色。理解这两个概念的区别对于高效地利用Java集合框架至关重要。 首先,我们来详细了解一下`Collection`接口...

    Java SE编程入门教程 collection与collections(共7页).pptx

    Java SE编程入门教程涵盖了许多Java基础概念,包括集合框架中的Collection和Collections。这两个概念在Java编程中至关重要,尤其是在处理数据存储和操作时。 首先,Collection是Java集合框架的一个顶级接口,它定义...

    java基础之Collection与Collections和Array与Arrays的区别

    Java 基础之 Collection 与 Collections 和 Array 与 Arrays 的区别 Collection 是 Java.util 下的一个接口,它是各种集合结构的父接口。继承与他的接口主要有 Set 和 List。Collection 是一个抽象概念,不能直接...

    java的Collections教程

    Java的Collections框架是Java编程中不可或缺的一部分,它提供了一组高效、灵活的工具类和接口,用于管理和操作各种数据结构,如列表(List)、集合(Set)、映射(Map)等。这个框架使得开发者能更方便地处理数据,提高了...

    Java Generics and Collections (Java泛型与集合)

    Java泛型与集合是Java编程中的核心概念,它们在实际开发中扮演着至关重要的角色。本书"Java Generics and Collections"深入探讨了这两个主题,帮助开发者编写更安全、更高效且可维护的代码。 首先,让我们来理解...

    Java Collections中的Fail Fast机制

    ### Java Collections中的Fail Fast机制详解 #### 一、概述 在Java编程中,**Fail Fast**机制是一项重要的设计原则,特别是在处理集合时尤为关键。它主要用于确保数据结构的一致性和完整性,通过快速检测并报告...

    java中Collection深入剖析

    在Java编程语言中,`Collection`是所有集合框架的基础接口,它是`List`、`Set`和`Queue`等具体集合类型的父接口。本篇文章将深入剖析Java中的`Collection`框架,探讨其核心概念、主要接口及其实现类,以及在实际开发...

    Apress的《Java Collections》

    《Java Collections》是Apress出版社出版的一本专著,它深入浅出地讲解了Java Collections框架,这是一套用于管理对象集合的强大的API。这本书针对Java程序员,无论你是初学者还是经验丰富的开发者,都能从中...

    java collections

    标题"java collections"暗示了我们将探讨Java中的集合接口和类,包括ArrayList、LinkedList、HashSet、HashMap等。这些集合是Java编程的基础,对于任何Java开发者来说都是必不可少的知识。 1. **ArrayList**: 这是...

    关于Java_Collection_API_

    在Java的Collection框架中,集合类被划分为两大类:线程安全集合类与非线程安全集合类。早期版本的集合类(如`Vector`和`Hashtable`)通过`synchronized`关键字实现线程安全,但在单线程环境下这种同步机制会显著...

    关于 Java Collections API 您不知道的 5 件事

    ### 关于 Java Collections API 您不知道的 5 件事 #### 1. Collections 比数组更好 在 Java 的早期阶段,为了回应 C++ 开发者对于性能的批评,Java 引入了数组这一概念。然而,随着时间的发展,Java 的 ...

    commons-collections4-4.1

    Apache Commons Collections是一个Java库,它提供了大量的集合框架增强功能,扩展了Java标准库中的集合类。这个库在Java开发中非常实用,因为它包含了各种高效、功能丰富的数据结构和算法,可以显著提高代码的效率和...

    JAVA COLLECTION (APress)

    《JAVA COLLECTION》是一本专注于Java集合框架的书籍,由APress出版社出版。这本书深入浅出地探讨了Java API中的各种数据结构,是学习和理解Java集合框架的理想资源。作者通过简洁明了的语言,使得初学者也能轻松...

    Java集合Collection、List、Set、Map使用详解

    除了Collection接口中的方法外,List还提供了`get(int index)`、`set(int index, E element)`、`add(int index, E element)`等与索引操作相关的API。 1.3.3 实现原理 ArrayList基于动态数组实现,适合随机访问,...

    Java Collections Interview Questions.pdf

    Collection 是 Java Collections 框架中的一个接口,定义了集合的基本操作,例如 add、remove、contains 等。collections 是 Collection 的一个实现类,提供了多种集合类,例如 ArrayList、LinkedList、HashSet 等。...

    《JavaCollections》

    很详细的java collection 讲解,希望能够帮助大家.。。。。。

Global site tag (gtag.js) - Google Analytics