Collections集合工具类和可变参数
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集合工具类和可变参数的更多相关文章
- 可变参数和Collections集合工具类
可变参数 /** * 可变参数:jdk1.5后出现的新特性 * 使用前期: * 当方法的参数列表数据类型已经确定的时候但是参数的个数不确定的时候就可以使用可变参数 * 使用格式:定义方法的时候使用 * ...
- java第十九天,Collections集合工具类的使用
Collections Java中集合都实现了Collection接口,那么针对集合一些特定的功能,有没有一个接口或类能够统一的集成一些集合必要的功能呢?当然能.它就是--Collections集合工 ...
- Collections集合工具类常用的方法
java.utils.Collections //是集合工具类,用来对集合进行操作.部分方法如下: public static <T> boolean addAll(Collection& ...
- Collections集合工具类的常用方法
Collections集合工具类的方法 addAll与shuffle import java.util.ArrayList; import java.util.Collections; /* - ja ...
- Collections集合工具类,集合嵌套,集合综合案例斗地主
1 Collections集合工具类 (可以对比Arrays工具类共同记忆) 常用方法: 例: import java.util.ArrayList; import java.util.Collect ...
- 可变参数和Collections集合工具类的方法_addAll&shuffle
可变参数 可变参数:是JDK1.5之后出现的新特性 使用前提:当方法的参数列表数据类型已经确定,但是参数的个数不确定,就可以使用可变参数 使用格式:定义方法时使用 ~修饰符 返回值类型 方法名(数据类 ...
- Collections 集合工具类
集合工具类 包括很多静态方法来操作集合list 而Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序.搜索以及线程安全等各种操作. 1) 排序( ...
- Collections集合工具类的方法_sort(List)和sort(List,Comparator)方法
Comparator比较器 我们还是先研究这个方法 public static <T> void sort(List<T> list):将集合中元素按照默认规则排序. 不过这次 ...
- [Guava学习笔记]Collections: 集合工具类
我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3861431.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...
随机推荐
- 记一次mysql事务未提交导致锁未释放的问题
记一次mysql事务未提交导致锁未释放的问题 ## 查看未提交的事务(3秒内未操作的事务) SELECT p.ID AS conn_id, P.USER AS login_user, P.HOST A ...
- 终极蛇皮上帝视角之铁头娃之鲁迅之暑假闲的慌之bilibili看尚学堂网课的非洲酋长java小复习
转自https://www.sxt.cn/Java_jQuery_in_action/eight-cache-problem.html 第一个点 自动装箱与拆箱的功能是所谓的"编译器蜜糖(C ...
- JavaWeb——CSS总结
CSS 记得大一下学期那会参加基地后就开始跟师兄师姐接触前端了,利用业余时间在站看各种视频.由于初次认知并且时间也能不固定集中,也存在跳跃式学习等等原因,这就导致了好多知识点要么漏掉要么没记全,只能懂 ...
- Maven无法下载com.oracle:ojdbc.jar解决方法
Maven无法下载com.oracle:ojdbc.jar解决方法 从maven仓库中下载失败,可以搭建私服nexus,也可以将jar下载到本地然后导入local_repository 使用maven ...
- BUUCTF刷题系列(2)5.27日记
CTF-Bugku-安卓篇1signin Writeup Bugku安卓部分第一题,第七届山东省大学生网络安全技能大赛的题目,属于Android逆向分析.(常用工具:安卓模拟器.JEB.Cyberch ...
- Java社区——个人项目开发笔记(二)
1.B\S架构通信原理 浏览器,服务器之间产生通信,浏览器访问服务器,服务器返回一个HTML,浏览器会对HTML进行解析,并渲染相关的内容. 在解析过程中,会发现HTML里引用了css文件,js文件, ...
- liunx上安装nacos
下载nacos wget https://github.com/alibaba/nacos/releases/download/1.4.1/nacos-server-1.4.1.tar.gz 启动服务 ...
- 最短路径 | 深入浅出Dijkstra算法(一)
参考网址: https://www.jianshu.com/p/8b3cdca55dc0 写在前面: 上次我们介绍了神奇的只有五行的 Floyd-Warshall 最短路算法,它可以方便的求得任意两点 ...
- WPF 自己做一个颜色选择器
程序开发过程中,经常会遇到需要支持动态配置主题颜色的问题,通常,一个程序会有多种不同的颜色风格主题供选 有时候,更细致一些的地方,会需要支持自己配置颜色,这样我们就需要一个颜色选择器啦,下面是我自己开 ...
- Object 类中的主要结构
== 操作符与equals 方法 == 操作符 equals 方法 重写equals() 方法的 toString() 方法