java基础37 集合框架工具类Collections和数组操作工具类Arrays
一、集合框架工具类:Collections
1.1、Collections类的特点
该工具类中所有的方法都是静态的
1.2、Collections类的常用方法
binarySearch(List<? extends Comparable<? super T>> list, T key):使用二叉搜索算法搜索指定对象的指定列表。注:使用binarySearch()方法前,必须先使用sort()方法 正序排序
sort(List<T> list):正序排序
reverse(List<?> list):倒序排序
max(Collection<? extends T> coll):找最大值
copy(List<? super T> dest, List<? extends T> src):将所有元素从一个列表复制到另一个列表中。
1.3、实例
package com.dhb.collection; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List; /**
* @author DSHORE / 2018-5-30
*
*/
public class Demo25 {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add();
list.add();
list.add();
list.add();
Collections.sort(list);//正序排序
System.out.println(list);//返回值:[1, 2, 6, 9] int t=Collections.binarySearch(list, );//使用二叉搜索算法搜索指定对象的指定列表。注:使用binarySearch()方法前,必须先使用sort()方法 正序排序
System.out.println(t);//返回值:1 Collections.reverse(list);//倒序排序
System.out.println(list);//返回值:[9, 6, 2, 1] int m=Collections.max(list);//找最大值
System.out.println(m);//返回值:9 //List<Integer>换成ArrayList<Integer>报错
List<Integer> list2 = Arrays.asList(new Integer[list.size()]);//如果换成ArrayList<Integer> list2=new ArrayList<Integer>(); 则报IndexOutOfBoundsException异常
Collections.copy(list2,list);
for (Integer s : list2) {
System.out.print(s+",");//返回值:9,6,2,1,
}
}
}
二、数组操作工具类:Arrays
2.1、Arrays类的常用方法
二分查找,要查找的数组必须是有序的数组
binarySearch(int[])
binarySearch(double[])
1、数组排序
sort(int[])
sort(char[])
2、将数组变成字符串
toString(int[])
3、复制数组
copyOf()
4、复制部分数组
copyOfRange()
5、比较两个数组是否相同
equals(int[],int[])
6、将数组变成集合
List asList(T[])
2.2、实例
package com.dhb.collection; import java.util.Arrays;
import java.util.List; /**
* @author DSHORE / 2018-5-30
*
*/
public class Demo26 {
public static void main(String[] args) {
int[] i=new int[];
i[]=;
i[]=;
i[]=;
i[]=;
i[]=;
i[]=;
i[]=;
System.out.println(Arrays.toString(i));//返回值:[5, 1, 6, 8, 10, 2, 38] Arrays.sort(i);//正序排序
System.out.println(Arrays.toString(i));//返回值:[1, 2, 5, 6, 8, 10, 38] int a=Arrays.binarySearch(i,);
System.out.println(a);//返回值:5 int[] in=Arrays.copyOf(i,);//从数组i中复制8个元素到数组in中。(因为数组i的长度为7,这里是8个长度,那么多出来的那位将用0代替)
System.out.println(Arrays.toString(in));//返回值:[1, 2, 5, 6, 8, 10, 38, 0]
int[] in2=Arrays.copyOf(i,);//从数组i中复制6个元素到数组in2中。(复制是从下标0开始到5结束。6个)
System.out.println(Arrays.toString(in2));//返回值:[1, 2, 5, 6, 8, 10] int[] it=new int[];
it=Arrays.copyOfRange(i, , );//copyOfRange():复制部分数组
System.out.println(Arrays.toString(it));//返回值:[2, 5, 6, 8] //把数组变为集合
List<String> list=Arrays.asList(Arrays.toString(i));
System.out.println(list);//返回值:[[1, 2, 5, 6, 8, 10, 38]]
}
}
附:Collection与Collections,Array与Arrays的区别
原创作者:DSHORE 作者主页:http://www.cnblogs.com/dshore123/ 原文出自:https://www.cnblogs.com/dshore123/p/9115101.html 欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!) |
java基础37 集合框架工具类Collections和数组操作工具类Arrays的更多相关文章
- Java基础--说集合框架
版权所有,转载注明出处. 1,Java中,集合是什么?为什么会出现? 根据数学的定义,集合是一个元素或多个元素的构成,即集合一个装有元素的容器. Java中已经有数组这一装有元素的容器,为什么还要新建 ...
- Java基础之集合框架类及泛型简介
Collection接口 Collection 通用的常见方法 add()添加一个元素,可以指定脚标 addAll()将一个collection放入 clear()清除 remove()删除元素,返回 ...
- Thinking in java基础之集合框架(转载)
集合简介(容器)把具有相同性质的一类东西,汇聚成一个整体,就可以称为集合,例如这里有20个苹果,我们把每一个苹果当成一个东西(一个对象),然后我们借用袋子把这20个苹果装起来,而这个袋子就是集合(也叫 ...
- java基础之集合框架
6.集合框架: (1)为什么出现集合类? 面向对象对事物的体现都是以对象的形式,为了方便对多个对象的操作,就对对象进行存储. 集合就是存储对象最常用的一种方式. (2)数组和集合都是容器,两者有何不同 ...
- 黑马程序员——【Java基础】——集合框架
---------- android培训.java培训.期待与您交流! ---------- 一.集合框架概述 (一)集合框架中集合类关系简化图 (二)为什么出现集合类? 面向对象语言对事物的体现都是 ...
- Java基础之集合框架(Collection接口和List接口)
首先我们说说集合有什么作用. 一.集合的作用 1.在类的内部,对数据进行组织: 2.简单而快速的搜索大数量的条目: 3.有的集合接口,提供一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关 ...
- java基础之集合框架--使用ArrayList类动态 存储数据
一.ArrayList是List接口下的一个实现类,实现了长度可变的.连续的数组:拥有数组的特性. 遵循了LIst的规则:不唯一的.有序的. 如果没有增加泛型的话,集合中可以添加任何类型的数据. 使用 ...
- Java基础之集合框架——使用堆栈Stack<>对象模拟发牌(TryDeal)
控制台程序. public enum Rank { TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING, A ...
- Java基础之集合框架——使用集合Vector<>挑选演员(TryVector)
控制台程序. public class Person implements Comparable<Person> { // Constructor public Person(String ...
随机推荐
- 解题:POI 2011 Dynamite
题面 从零开始的DP学习系列之叁 树形DP的基本(常见?)思路:先递归进儿子,然后边回溯边决策,设状态时常设$dp[x]$表示以$x$为根的子树中(具体分析算不算$x$这个点)的情况 显然的二分答案, ...
- PHP获取图片主题颜色
(1)工具类:pictureColor.php class pictureColor{ /** * 获取颜色使用库类型 */ public $type = 'gd'; ...
- supervisor "unix:///var/run/supervisor/supervisor.sock no such file" 解决方法
如果是没有开启 supervisord 服务的情况下出现这种报错,可以先 systemctl start supervisor 试试, 如果不是,那就 sudo touch /var/run/supe ...
- Linux最大文件句柄(文件描述符)限制和修改
转自:http://jameswxx.iteye.com/blog/2096461 写这个文章是为了以正视听,网上的文章人云亦云到简直令人发指.到底最大文件数被什么限制了?too many open ...
- Centos6.6系统root用户密码恢复案例
1.重新启动主机后,在出现Grub菜单时按上下键取消倒计时 2.进入到内核引导界面按e键如下所示: 3.将鼠标定位到Kernel这一行按e键 4.在行尾输入”single”也可以换成字母”s”或者数字 ...
- vue中import xxx from 和 import {xxx} from的区别
1.import xxx from import FunName from ‘../xxx’ 对应js中的引用: export defualt function FunName() { return ...
- 科学计算三维可视化---TVTK入门(安装与测试)
推文:http://docs.huihoo.com/scipy/scipy-zh-cn/tvtk_intro.html 推文:http://code.enthought.com/pages/mayav ...
- nginx配置详情(总结)
Nginx简介 Nginx是一款开源代码的高性能HTTP服务器和反向代理服务器,同时支持IMAP/POP3/SMTP代理服务 Nginx工作原理 Nginx由内核和模块组成,完成工作是通过查找配置文件 ...
- poj 1961 Period
Period http://poj.org/problem?id=1961 Time Limit: 3000MS Memory Limit: 30000K Description Fo ...
- C#_事件学习
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...