Collections常用的API:

    public static <T> boolean addAll(Collection<? super T> c, T... elements)    给集合对象批量添加元素

    public static void shuffle(List<?> list)   打乱集合顺序(只能打乱List集合)

    public static <T> void sort(List<T> list )    将集合中元素按照默认规则排序(给List集合升序排序)

    public static <T> void sort(List<T> list, Comparator<? super T> )  将集合中元素按照

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List; public class CollectionsDemo1 {
public static void main(String[] args) {
//给集合批量添加元素
Collection<String> name=new ArrayList<>();
Collections.addAll(name,"喜羊羊","懒洋洋","美羊羊");
System.out.println(name); // [喜羊羊, 懒洋洋, 美羊羊]
//打乱集合顺序(有序集合)
List<String> name1=new ArrayList<>();
Collections.addAll(name1,"灰太狼1","红太狼2","小灰灰3");
Collections.shuffle(name1); //每次打乱都不一样
System.out.println(name1); // [红太狼2, 灰太狼1, 小灰灰3]
//升序排序(List),根据首字符ACAII码值
List<String> name2=new ArrayList<>();
Collections.addAll(name2,"apple","pear","orange","banana","78","A");
Collections.sort(name2);
System.out.println(name2); }
}

------------------------------------------------------------------------------------------------------------------------------------------------

注意:如果类有比较规则,而这里有比较器,优先使用比较器

package com.day04.practice2;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List; public class CollectionDemo2 {
public static void main(String[] args) {
List<Human> l=new ArrayList<>();
Collections.addAll(l,new Human("张三",66),new Human("李四",28), new Human("毛六",27));
Collections.sort(l);
System.out.println(l); //第二种为集合设置比较器Compartor对象,重写比较方法
List<Human> ll=new ArrayList<>();
Collections.addAll(ll,new Human("张三",66),new Human("李四",28), new Human("毛六",27));
Collections.sort(ll, new Comparator<Human>() {
@Override
public int compare(Human h1,Human h2){
return h2.getAge()-h1.getAge();
} });
System.out.println(ll);
}
} class Human implements Comparable<Human>{ //第一种为对象的类实现比较器接口Comparable,重写比较方法
private String name;
private int age; @Override
public int compareTo(Human h){
if(this.age>h.age)return 1;
if(this.age<h.age)return -1;
return 0;
} Human(){ }
Human(String name,int age){
this.name=name;
this.age=age;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} @Override
public String toString() {
return "Human{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
} //输出结果
//[Human{name='毛六', age=27}, Human{name='李四', age=28}, Human{name='张三', age=66}]
//[Human{name='张三', age=66}, Human{name='李四', age=28}, Human{name='毛六', age=27}]

可变参数在方法内部本质是就是一个数组

可变参数的格式:数据类型...参数名称

注意:1.一个 形参列表可变参数只能有一个!!

   2.可变参数必须放在形参列表的最后面!!

public class KeBian {
public static void main(String[] args) {
sum(15);
sum(125,78,45);
sum(new int[]{78,45,12,78});
System.out.println("-------------------");
sum1("yyyy");
sum1("hhhh",89,45);
sum1("21564",new int[]{787,6,8,7}); } public static void sum(int...nums){
System.out.println("长度:"+nums.length);
System.out.println("内容:"+Arrays.toString(nums));
} public static void sum1(String str,int...nums){
System.out.println("长度:"+nums.length);
System.out.println("内容:"+Arrays.toString(nums));
}
}

输出结果:长度:1
内容:[15]
长度:3
内容:[125, 78, 45]
长度:4
内容:[78, 45, 12, 78]
-------------------
长度:0
内容:[]
长度:2
内容:[89, 45]
长度:4
内容:[787, 6, 8, 7]

    

Collections集合工具类和可变参数的更多相关文章

  1. 可变参数和Collections集合工具类

    可变参数 /** * 可变参数:jdk1.5后出现的新特性 * 使用前期: * 当方法的参数列表数据类型已经确定的时候但是参数的个数不确定的时候就可以使用可变参数 * 使用格式:定义方法的时候使用 * ...

  2. java第十九天,Collections集合工具类的使用

    Collections Java中集合都实现了Collection接口,那么针对集合一些特定的功能,有没有一个接口或类能够统一的集成一些集合必要的功能呢?当然能.它就是--Collections集合工 ...

  3. Collections集合工具类常用的方法

    java.utils.Collections //是集合工具类,用来对集合进行操作.部分方法如下: public static <T> boolean addAll(Collection& ...

  4. Collections集合工具类的常用方法

    Collections集合工具类的方法 addAll与shuffle import java.util.ArrayList; import java.util.Collections; /* - ja ...

  5. Collections集合工具类,集合嵌套,集合综合案例斗地主

    1 Collections集合工具类 (可以对比Arrays工具类共同记忆) 常用方法: 例: import java.util.ArrayList; import java.util.Collect ...

  6. 可变参数和Collections集合工具类的方法_addAll&shuffle

    可变参数 可变参数:是JDK1.5之后出现的新特性 使用前提:当方法的参数列表数据类型已经确定,但是参数的个数不确定,就可以使用可变参数 使用格式:定义方法时使用 ~修饰符 返回值类型 方法名(数据类 ...

  7. Collections 集合工具类

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

  8. Collections集合工具类的方法_sort(List)和sort(List,Comparator)方法

    Comparator比较器 我们还是先研究这个方法 public static <T> void sort(List<T> list):将集合中元素按照默认规则排序. 不过这次 ...

  9. [Guava学习笔记]Collections: 集合工具类

    我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3861431.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...

随机推荐

  1. 深入理解jvm-2Edition-虚拟机类加载机制

    1.概述-什么是类加载? 将Class文件从其他地方(外存.字节流甚至是网络流中)载入内存, 并对其中数据进行校验.转换解析和初始化,最终从其中提取出能够被虚拟机使用的Java类型. 用图纸造模子,该 ...

  2. Docker部署Mysql实践

    前言:由于Docker部署容器时,没有指定IP,当机器重启后,容器的IP会变化,所以在创建容器的时候,最好能固定IP:同时,在Ubuntu系统中,每次执行命令,都需要root权限,命令需要加sudo标 ...

  3. Run Clojure Script with External Dependencies without leiningen

    The normal way of deploy clojure files is using leiningen. But if we have no leiningen, or the scrip ...

  4. pthread_cleanup_push与pthread_cleanup_pop的理解

    一.为什么会有pthread_cleanup_push与pthread_cleanup_pop: 一般来说,Posix的线程终止有两种情况:正常终止和非正常终止.线程主动调用pthread_exit( ...

  5. Rip CD on Ubuntu

    用Mint自带的banshee可以把CD转换为ogg文件,[Media -> Import Media],然后选择Audio CD,但只能转换为ogg格式,好像不能自动获取ID3标签:比较好的方 ...

  6. Windows提权总结

    当以低权用户进去一个陌生的windows机器后,无论是提权还是后续做什么,第一步肯定要尽可能的搜集信息.知己知彼,才百战不殆. 常规信息搜集 systeminfo 查询系统信息 hostname 主机 ...

  7. 题解—P3000 [USACO10DEC]Cow Calisthenics G

    做这题之前最好学会 "树形 \(dp\) 求树的直径"这一前缀知识(虽然我会但是我还是没想出来) 几乎想到要求直径这道题也没什么问题了(这不是废话吗,为什么题面里给了"直 ...

  8. windows上python3安装

    下载python 下载地址 https://www.python.org/downloads/windows/ 安装python 1.添加python到环境变量 2.自定义安装 3.下一步 4.选择安 ...

  9. 安装 iperf和服务器之间测速

    安装 # https://downloads.es.net/pub/iperf/iperf-3.1.3.tar.gz wget https://iperf.fr/download/source/ipe ...

  10. C#设计模式---PipeLine

    一.概述 顾名思义,管道模式就像一条管道把多个对象连接起来,整体看起来就像若干个阀门嵌套在管道中,而处理逻辑就放在阀门上,如下图,需要处理的对象进入管道后,分别经过阀门一.阀门二.阀门三.阀门四,每个 ...