Java从零开始学二十四(集合工具类Collections)
一、Collections简介
二、Collections类的常用方法及常量
|
No.
|
方法
|
类型
|
描述
|
|
1
|
public static final List EMPTY_LIST
|
常量
|
返回一个空的List集合
|
|
2
|
public static final Set EMPTY_SET
|
常量
|
返回空的Set集合
|
|
3
|
public static final Map EMPTY_MAP
|
常量
|
返回空的Map集合
|
|
4
|
public static <T> boolean addAll(Collection<? super T> c, T... a)
|
普通
|
为集合添加内容
|
|
5
|
public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll)
|
普通
|
找到最大的内容,按比较器排序
根据元素的自然顺序,返回给定集合的最大元素
|
|
6
|
public static <T extends Object & Comparable<? super T>> T min(Collection<? extends T> coll)
|
普通
|
找到集合中的最小内容,按比较器排序
根据元素的自然顺序 返回给定集合的最小元素
|
|
7
|
public static <T> boolean replaceAll(List<T> list,T oldVal,T newVal)
|
普通
|
用新的内容替换集合的指定内容
使用另一个值替换集合中出现的所有某一指定值
|
|
8
|
public static void reverse(List<?> list)
|
普通
|
反转指定List 集合中元素的顺序。 |
|
9
|
public static <T> int binarySearch(List<? extends Comparable<? super T>> list,T key)
|
普通
|
查找集合中的指定内容
使用二分查找算法查找指定List 集合,以获得指 |
|
10
|
public static final <T> List<T> emptyList()
|
普通
|
返回一个空的List集合
|
|
11
|
public static final <K,V> Map<K,V> emptyMap()
|
普通
|
返回一个空的Map集合
|
|
12
|
public static final <T> Set<T> emptySet()
|
普通
|
返回一个空的Set集合
|
|
13
|
public static <T extends Comparable<? super T>> void sort(List<T> list)
|
普通
|
集合排序操作,根据Comparable接口进行排序
根据元素的自然顺序 对指定List 集合按升 |
|
14
|
public static void swap(List<?> list,int i,int j)
|
普通
|
交换指定位置的元素
|
三、将指定List 集合中的元素顺序反转
package com.pb.demo2; import java.util.Collections;
import java.util.LinkedList;
import java.util.List; public class CollectionsTest1 { public static void main(String[] args) {
//声明集合并添加元素
LinkedList<String> list = new LinkedList<String>();
list.add("one");
list.add("two");
list.add("three"); System.out.println("=======正常遍历============");
for (String s : list) {
System.out.print(s+"\t");
}
System.out.println();
System.out.println("=======执行reverse方法============");
Collections.reverse(list);
for (String s : list) {
System.out.print(s+"\t");
} } }
四、sort 方法的作用是对指定List 集合按升序进行排序
package com.pb.demo2; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; public class CollectionsTest2 { public static void main(String[] args) {
//声明集合并添加集
List<Integer> list = new ArrayList<Integer>();
list.add(7);
list.add(2);
list.add(5);
list.add(3);
list.add(1);
System.out.println("=======正常遍历============");
for (Integer i : list) {
System.out.print(i+"\t");
} System.out.println("\n=======执行sort方法============");
Collections.sort(list);
for (Integer i : list) {
System.out.print(i+"\t");
}
System.out.println("\n=======执行reverse方法============");
Collections.reverse(list);
for (Integer i : list) {
System.out.print(i+"\t");
}
} }
结果:
=======正常遍历============
7 2 5 3 1
=======执行sort方法============
1 2 3 5 7
=======执行reverse方法============
7 5 3 2 1
五、集合查找、替换的方法
package com.pb.demo2; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; public class CollectionsTest3 { public static void main(String[] args) {
//声明集合并添加集
//创建集合
List<String> list = new ArrayList<String>();
//增加10 个不同单词
list.add("this");
list.add("is");
list.add("collection");
list.add("test");
list.add("and");
list.add("we");
list.add("can");
list.add("learn");
list.add("how");
list.add("to");
System.out.println("=======正常遍历============");
for (String s : list) {
System.out.print(s+"\t");
}
//打印输出集合中最大元素和最小元素
System.out.println("\n========打印输出集合中最大元素和最小元素=========");
String max=Collections.max(list);
String min=Collections.min(list);
System.out.println("list集合中的最大值:"+max);
System.out.println("list集合中的最小值:"+min);
System.out.println("\n=======执行sort方法============");
Collections.sort(list);
for (String s : list) {
System.out.print(s+"\t");
}
//binarySearch使用的前提是要排序才可以使用
System.out.println("\n=============binarySearch根据内容查找索引================");
System.out.println("we在list中的索引是:"+Collections.binarySearch(list, "we"));
System.out.println("=============replaceAll方法================");
//replaceAll
Collections.replaceAll(list, "we", "our");
for (String s : list) {
System.out.print(s+"\t");
}
//swap
System.out.println("======swap========");
Collections.swap(list, 0, 9);
for (String s : list) {
System.out.print(s+"\t");
} }
}
结果:
=======正常遍历============
this is collection test and we can learn how to
========打印输出集合中最大元素和最小元素=========
list集合中的最大值:we
list集合中的最小值:and =======执行sort方法============
and can collection how is learn test this to we
=============binarySearch根据内容查找索引================
we在list中的索引是:9
=============replaceAll方法================
and can collection how is learn test this to our ======swap========
our can collection how is learn test this to and
六、使用Arrays.asList生成集合
package com.pb.demo2; import java.util.Arrays;
import java.util.List; public class Test1 { public static void main(String[] args) {
String str="a,b,c,d,e,f";
List<String> list1=Arrays.asList(str);
System.out.println("list1的长度: "+list1.size());
for (String s : list1) {
System.out.print(s+"\t");
}
System.out.println("\n按逗号分离后生成集合");
List<String> list2=Arrays.asList(str.split(","));
System.out.println("list2的长度: "+list2.size());
for (String s : list2) {
System.out.print(s+"\t");
}
} }
结果:
list1的长度: 1
a,b,c,d,e,f
按逗号分离后生成集合
list2的长度: 6
a b c d e f
Java从零开始学二十四(集合工具类Collections)的更多相关文章
- Java笔记(二十四)……集合工具类Collections&Arrays
Collections 集合框架的工具类,方法全部为静态 Collections与Collection的区别 Collection是集合框架的一个顶层接口,里面定义了单列集合的共性方法 Collect ...
- Java从零开始学三十(String和StringBuffer类)
一.StringBuffer连接字符操作 当一个字符串的内容需要被经常改变时就要使用StringBuffer 在StringBuffer中使用append()方法,完成字符串的连接操作 二.Str ...
- Java从零开始学二十二(集合Set接口)
一.Set接口的定义 Set接口也是Collection接口的子接口,但是与Collection或List接口不同的是,Set接口中不能加入重复的元素 Set接口的主要方法与Collection是一致 ...
- Java从零开始学二十(集合简介)
一.为什么需要集合框架 数组的长度是固定的,但是如果写程序时并不知道程序运行时会需要多少对象.或者需要更复杂的方式存储对象,---那么,可以使用JAVA集合框架,来解决这类问题 二.集合框架主要接口 ...
- Java从零开始学二十九(大数操作(BigIntger、BigDecimal)
一.BigInteger 如果在操作的时候一个整型数据已经超过了整数的最大类型长度long的话,则此数据就无法装入,所以,此时要使用BigInteger类进行操作. 不可变的任意精度的整数.所有操作中 ...
- Java从零开始学二十八(Math类和Random类)
一.Math概述 提供了常用的数学运算方法和两个静态常量E(自然对数的底数)和PI(圆周率) 二.常用方法 package com.pb.demo1; public class MathTest { ...
- Java从零开始学二十六(包装类)
一.包装类 包装类是将基本类型封装到一个类中.也就是将基本数据类型包装成一个类类型. java程序设计为每一种基本类型都提供了一个包装类.这些包装类就在java.lang包中.有8个包装类 二.包装类 ...
- Java从零开始学二十五(枚举定义和简单使用)
一.枚举 枚举是指由一组固定的常量组成的类型,表示特定的数据集合,只是在这个数据集合定义时,所有可能的值都是已知的. 枚举常量的名称建议大写. 枚举常量就是枚举的静态字段,枚举常量之间使用逗号隔开. ...
- Java:集合工具类-Collections
Java.util.Collections 集合框架工具类Collections,其方法都是静态的,本身没有构造函数. 常见方法: static <T extends Comparable< ...
随机推荐
- ROS知识(10)----smach_viewer的Graph view不能显示状态图
1.问题 在运行ROS by Example 2--Indigo版本中,运行 smach_viewer,再运行巡逻,命令如下: $ rosrun smach_viewer smach_viewer.p ...
- 几张图理解Roll, Pitch, Yaw的含义
Roll:翻滚 Pitch:俯仰 Yaw:偏航 有时候不知道它到底绕着哪个轴旋转得到的角,一个比较容易的记法是根据字母的排列顺序PRY分别对应XYZ轴进行旋转得到的角,即: Pitch是绕 ...
- SQLServer存储过程返回值总结
1. 存储过程没有返回值的情况(即存储过程语句中没有return之类的语句) 用方法 int count = ExecuteNonQuery(..)执行存储过程其返回值只有两种情况 (1)假如通 ...
- JAVA JDOM解析XML 带CDATA数据
import java.io.StringReader;import java.util.*; import org.jdom.Document;import org.jdom.Element;imp ...
- NGUI 3.5教程(一)安装NGUI 3.5.8
写在前面: 网上找的NGUI教程,都是基于2.x版本号的.为了能配合教程学着做,我也是下载了各种NGUI 2.x版本号.可是在导入的时候,或多或少都报错(我用的Unity 的版本号是4.3.2).无奈 ...
- APACHE 2.2.8+TOMCAT6.0.14配置负载均衡
目标: 使用 apache 和 tomcat 配置一个可以应用的 web 网站,要达到以下要求: 1. Apache 做为 HttpServer ,后面连接多个 tomcat 应用实例,并进行负载均 ...
- HTTP协议状态码详解(HTTP Status Code)(转)
原文链接:HTTP协议状态码详解(HTTP Status Code) 使用ASP.NET/PHP/JSP 或者javascript都会用到http的不同状态,一些常见的状态码为: 200 – 服务器成 ...
- Objective-C:继承、分类(Category、extension)、协议(protocol),个人理解,仅供参考
总结:继承.分类(Category.extension).协议(protocol) 一.继承: (1)特点: 继承多用于一般父类中的方法功能比较齐全,子类从父类继承过来使用,可以省略很多重复的代码 ...
- [18] 螺旋楼梯(Spiral Stairs)图形的生成算法
顶点数据的生成 bool YfBuildSpiralStairsVertices ( Yreal radius, Yreal assistRadius, Yreal height, Yuint sli ...
- 充满未来和科幻的界面设计FUI在国内还没有起步在国外早起相当成熟
所谓FUI可以是幻想界面(Fantasy User Interfaces).科幻界面(Fictional User Interfaces).假界面(Fake User Interfaces).未来主义 ...