`

集合工具类:Collections

    博客分类:
  • JAVA
 
阅读更多

1.掌握Collections 与 Collection 接口的区别

2.掌握Collections 类中提供的主要操作方法

在面试题目中有可能会问这样一个问题,请回答, Collections 和 Collection 的关系。Collections 类与 Collection 没有直接的关系,但是与集合中的各个接口都有操作的方法支持。



 

空集合的操作:

public static final <T> List <T> emptyList()

public static final <T> Set <T> emptySet()

import java.util.Collections ;
import java.util.List ;
public class CollectionsDemo1{
	public static void main(String args[]){
		List<String> allList = Collections.emptyList() ;	// 返回空的 List集合
		allList.add("Hello") ;	// 加入数据
	}
}

 执行结果出现异常:

Exception in thread "main" java.lang.UnsupportedOperationException
	at java.util.AbstractList.add(AbstractList.java:131)
	at java.util.AbstractList.add(AbstractList.java:91)
	at CollectionsDemo1.main(CollectionsDemo1.java:6)

 原因:使用Collections.emptyList(),返回一个空的List,但是发现它不支持Add功能,调用Add会抛出unsupportedException,在以后要返回一个空的List,并还需要后续操作时,不能使用Collections.emptyList()方法,看文档发现,List的实现类都有自己的实现,而返回的EmptyList的实现没有实现add(int index, E element方法,使用了
AbstractList.add(int index, E element){
    throw new UnsupportedOperationException();
}

 

如果要想为集合中增加内容,则肯定使用add() 方法,在Collections 中也提供了专门的增加操作。

public static <T> boolean addAll (Collection<? super T> c, T... elements)使用了可变参数,所以,可以任意输入各种类型的数据。

import java.util.Collections ;
import java.util.List ;
import java.util.ArrayList ;
import java.util.Iterator ;
public class CollectionsDemo1{
	public static void main(String args[]){
		List<String> all = new ArrayList<String>() ;	// 返回空的 List集合
		Collections.addAll(all,"MLDN","LXH","mldnjava") ;//用collections的方法想集合中添加元素
		System.out.print("反转前集合中的内容:");
		Iterator<String> iter = all.iterator() ;
		while(iter.hasNext()){
			System.out.print(iter.next() + "、") ;
		}
		System.out.println();
		Collections.reverse(all);
		System.out.print("反转后集合中的内容:");
		iter = all.iterator() ;
		while(iter.hasNext()){
			System.out.print(iter.next() + "、") ;
		}
	}
}

 

//output result
反转前集合中的内容:MLDN、LXH、mldnjava、
反转后集合中的内容:mldnjava、LXH、MLDN、

 排序操作:public static <T extends Comparable <? super T>> void sort(List<T> list)

import java.util.Collections ;
import java.util.List ;
import java.util.ArrayList ;
public class CollectionsDemo1{
	public static void main(String args[]){
		List<String> all = new ArrayList<String>() ;	// 返回空的 List集合
		Collections.addAll(all,"1、MLDN","3、mldnjava","2、LXH","c、aaa") ;
		Collections.addAll(all,"B、www.mldn.cn") ;
		Collections.addAll(all,"A、www.mldnjava.cn") ;
		System.out.println("排序之前的集合:" + all) ;
		Collections.sort(all) ;
		System.out.println("排序之后的集合:" + all) ;
		
		
	}
}

输出结果:

排序之前的集合:[1、MLDN, 3、mldnjava, 2、LXH, c、aaa, B、www.mldn.cn, A、www.mldnjava.cn]
排序之后的集合:[1、MLDN, 2、LXH, 3、mldnjava, A、www.mldnjava.cn, B、www.mldn.cn, c、aaa]

 

交换指定位置的内容:public static void swap(List <?> list, int i, int j)

 

import java.util.Collections ;
import java.util.List ;
import java.util.ArrayList ;
public class CollectionsDemo1{
	public static void main(String args[]){
		List<String> all = new ArrayList<String>() ;	// 返回空的 List集合
		Collections.addAll(all,"1、MLDN","2、LXH","3、mldnjava") ;
		System.out.println("交换之前的集合:" + all) ;
		Collections.swap(all,0,2) ;
		System.out.println("交换之后的集合:" + all) ;
		
	}
}

 输出结果:

交换之前的集合:[1、MLDN, 2、LXH, 3、mldnjava]
交换之后的集合:[3、mldnjava, 2、LXH, 1、MLDN]

 

 替换内容:public static <T> boolean replaceAll (List <T> list, T oldVal, TnewVal)

import java.util.Collections ;
import java.util.List ;
import java.util.ArrayList ;
public class CollectionsDemo1{
	public static void main(String args[]){
		List<String> all = new ArrayList<String>() ;	// 返回空的 List集合
		Collections.addAll(all,"MLDN","LXH","mldnjava") ;
		System.out.println("替换之前的结果"+all);
		if(Collections.replaceAll(all,"LXH","李兴华")){// 替换内容
			System.out.println("内容替换成功!") ;
		}
		System.out.print("替换之后的结果:") ;
		System.out.print(all) ;
		
	}
}

 输出结果:

替换之前的结果[MLDN, LXH, mldnjava]
内容替换成功!
替换之后的结果:[MLDN, 李兴华, mldnjava]

 

  • 大小: 114.3 KB
分享到:
评论

相关推荐

    Java操作集合工具类Collections使用详解

    Java操作集合工具类Collections使用详解 Java操作集合工具类Collections是Java语言中一个非常重要的工具类,主要用于操作Set、List和Map等集合。Collections工具类提供了大量方法对集合元素进行排序、查询和修改等...

    集合工具类Collections的基本应用

    集合工具类Collections是Java编程语言中的一个非常重要的辅助类,它提供了一系列静态方法,用于对各种集合框架(如List、Set、Queue等)进行操作。这些方法包括但不限于排序、查找、替换以及同步控制,极大地提高了...

    java工具类集合

    Java工具类集合是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,工具类通常被组织在各种包下,如`java.util`、`java.lang`、`java.io`等。下面将详细介绍...

    JAVA集合框架工具类自定义Collections集合方法

    下面是一个自定义的集合工具类 CollectionsCustom,用于对集合进行处理和操作。 CollectionsCustom工具类 CollectionsCustom工具类是一个自定义的集合工具类,用于对集合进行处理和操作。该类提供了一个reduce方法...

    Java之Collection总结

    #### 四、集合工具类:Collections `Collections`是一个工具类,提供了一系列静态方法来操作集合对象,如排序、填充、反转等。 #### 五、特例:容器中装容器 - 实现方法:每个`Collection`都有`addAll()`方法,...

    Collections集合工具类排序.docx

    Collections集合工具类是Java编程语言中的一个重要组成部分,它提供了对集合框架的支持,包括排序、查找、复制、反转等操作。在处理ArrayList、LinkedList等List类型的集合时,Collections工具类的`sort()`方法非常...

    java 工具类代码集合

    - `ListUtils`和`MapUtils`:Apache Commons Collections中的工具类,提供了集合的创建、合并、分割等高级操作。 6. **反射工具类**: - `ClassUtils`:Apache Commons Lang库中的工具类,提供类的加载、属性检查...

    559.557.JAVA基础教程_集合-Collections工具类常用方法的测试(559).rar

    Java集合框架是Java编程中不可或缺的部分,而Collections工具类则是这个框架中的一个重要工具,它提供了大量静态方法,用于操作各种集合接口(如List、Set、Queue等)的实例。本教程将深入探讨Collections工具类中的...

    commons-beanutils、commons-collections、commons-collections等常用jar 包下载

    这三款库在Java开发中应用广泛,特别是在处理对象属性、集合操作和通用工具类时。它们使得代码更加简洁,减少了重复工作,并提高了代码的可读性和可维护性。在实际项目中,根据需求选择合适版本的Apache Commons库,...

    commons-collections-3.2.jar

    Apache Commons Collections是Java开发中常用的一个开源库,它为Java集合框架提供了大量的实用工具类和扩展。"commons-collections-3.2.jar"是该库的版本3.2的实现,它包含了一系列高效、实用且功能丰富的数据结构和...

    day05-迭代器,数据结构,List,Set ,TreeSet集合,Collections工具类 - 副本.md

    这是为了方便大家了解集合类的相关知识所找的一个MarkDown文档,读者可以通过阅读了解各种子类集合的实现原理,红黑树的实现也会有所介绍.

    50个左右的JAVA工具类,相对比较全

    3. **集合工具类**:Java的Collections类提供了集合的一些基本操作,而Guava库则提供了更加强大的集合处理功能,如Multimap、Multiset、Immutable集合等。 4. **数学计算工具类**:如Apache Commons Math提供了各种...

    commons-collections4-4.4.rar

    6. **集合工具类**:包括`CollectionUtils`、`ListUtils`、`SetUtils`等,提供了一套全面的静态方法,用于集合的比较、合并、查找、排序等操作。 7. **类型安全的泛型**:Collections 4.4全面支持Java泛型,确保了...

    Collections

    Collections 是 Java 中的一个集合工具类,提供了多种操作集合的方法。下面是对 Collections 中部分方法的详细解释。 概述 Collections 类是一个集合工具类,它提供了多种操作集合的方法,如查找、排序、线程安全...

    开发常用工具类

    3. **集合工具类**: - `Collections`:Java 核心库中的工具类,提供了对集合框架的操作,如排序、反转、填充、查找等。 - `Guava` 库中的 `Collections2`, `Lists`, `Sets`, `Multisets` 等:Google 的 Guava 库...

    Java常用工具类集合

    在Java编程语言中,工具类集合是一系列实用的类,它们提供了各种通用功能,帮助开发者更高效地编写代码。这些工具类通常包含在Java的`java.util`以及其他相关的包中,如`java.text`,`javax.imageio`,`javax.xml`等...

    吐血推荐17个提升开发效率的“轮子”.doc

    一、 Collections 工具类 1. 排序:Collections.sort() 方法可以实现升序和降序排序。 例如: List list = new ArrayList(); list.add(2); list.add(1); list.add(3); Collections.sort(list);//升序 System.out....

    google Guava集合工具类(超实用)

    Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你...

    Java常用工具类

    - `Collections`类:针对集合框架的工具类,包含排序、查找、反转等方法。 2. **java.time包**(Java 8引入):提供了新的日期和时间API,如`LocalDate`、`LocalTime`、`LocalDateTime`、`ZonedDateTime`等,比旧...

Global site tag (gtag.js) - Google Analytics