`
tjukk
  • 浏览: 45350 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Java Collections

    博客分类:
  • Java
 
阅读更多

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

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

 

11)线程安全

Collection cl = Collections.synchronizedCollection(new ArrayList());

List list = Collections.synchronizedList(new ArrayList());

Set set = Collections.synchronizedSet(new HashSet());

Map map = Collections.synchronizedMap(new HashMap());

 

分享到:
评论

相关推荐

    Java Collections.pdf

    根据提供的文件信息,我们可以推断出这是一本关于Java Collections的书籍,作者为John Zukowski。下面将基于这些信息来生成相关的Java Collections知识点。 ### Java Collections 概览 #### 一、简介 Java ...

    Apress的《Java Collections》

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

    APress - Java Collections

    《APress - Java Collections》这本书由John Zukowski编写,深入探讨了Java集合框架的各种细节,为读者提供了理解和应用Java集合类的重要知识。本书版权属于作者John Zukowski,并于2001年出版,所有权利受法律保护...

    数据结构和Java集合框架《Data Structures and the Java Collections Framework》

    本资源《Data Structures and the Java Collections Framework》旨在深入讲解这两个主题,帮助开发者更好地理解和应用它们。 数据结构是指在内存中组织数据的方式,它决定了数据的存储和访问效率。常见的数据结构...

    Java Collections中的Fail Fast机制

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

    Data Structures and the Java Collections Framework(3rd) 无水印pdf

    Data Structures and the Java Collections Framework(3rd) 英文无水印pdf 第3版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源...

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

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

    Java Collections 2001 by John Zukowski

    ### Java Collections Framework详解 #### 一、概述 《Java Collections 2001 by John Zukowski》是一本深入探讨Java Collections Framework的专业书籍。该书由John Zukowski编写,出版于2001年,虽然时间久远,但...

    Java Collections Interview Questions.pdf

    Java Collections 面试题详解 Java Collections 是 Java 语言中的一种常用的数据结构,用于存储和操作大量数据。它提供了多种集合类,例如 ArrayList、LinkedList、HashSet、TreeSet 等,每种集合类都有其特点和...

    java collections

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

    Java Collections Apress

    Java Collections Apress This book describes how to use this Collections Framework. We'll also look at some of the common alternate frameworks available.

    关于 Java Collections API 您不知道的 5 件事,第 2 部分

    Java Collections API 是Java编程语言中不可或缺的一部分,它提供了丰富的接口和类来操作各种集合,如List、Set、Map等。这篇博客的第二部分将深入探讨关于Collections API的一些不那么为人所知的知识点,旨在帮助...

    关于 Java Collections API 您不知道的 5 件事,第 1 部分

    ### 关于 Java Collections API 您不知道的 5 件事,第 1 部分 在 Java 开发领域,Collections API 已成为一种不可或缺的工具,它不仅简化了许多常见的编程任务,还提供了丰富的特性和灵活性。然而,对于许多开发者...

    Java collections(Java的数据结构)

    本文将基于《Java Collections》这本书中的内容,深入探讨 Java 集合框架中的关键概念和技术细节。 #### 二、Java 集合框架概述 Java 集合框架是由一系列接口和类组成的,它们共同提供了一种灵活且高效的方式来...

    Java集合框架(JCF:Java Collections Framework)之概述

    Java 集合框架(JCF:Java Collections Framework)之概述 Java 集合框架(JCF:Java Collections Framework)是 Java 语言中的一组类库,用于实现集合操作的统一标准。集合是计算机科学中的一种基本概念,来源于...

Global site tag (gtag.js) - Google Analytics