一、集合框架工具类: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的更多相关文章

  1. Java基础--说集合框架

    版权所有,转载注明出处. 1,Java中,集合是什么?为什么会出现? 根据数学的定义,集合是一个元素或多个元素的构成,即集合一个装有元素的容器. Java中已经有数组这一装有元素的容器,为什么还要新建 ...

  2. Java基础之集合框架类及泛型简介

    Collection接口 Collection 通用的常见方法 add()添加一个元素,可以指定脚标 addAll()将一个collection放入 clear()清除 remove()删除元素,返回 ...

  3. Thinking in java基础之集合框架(转载)

    集合简介(容器)把具有相同性质的一类东西,汇聚成一个整体,就可以称为集合,例如这里有20个苹果,我们把每一个苹果当成一个东西(一个对象),然后我们借用袋子把这20个苹果装起来,而这个袋子就是集合(也叫 ...

  4. java基础之集合框架

    6.集合框架: (1)为什么出现集合类? 面向对象对事物的体现都是以对象的形式,为了方便对多个对象的操作,就对对象进行存储. 集合就是存储对象最常用的一种方式. (2)数组和集合都是容器,两者有何不同 ...

  5. 黑马程序员——【Java基础】——集合框架

    ---------- android培训.java培训.期待与您交流! ---------- 一.集合框架概述 (一)集合框架中集合类关系简化图 (二)为什么出现集合类? 面向对象语言对事物的体现都是 ...

  6. Java基础之集合框架(Collection接口和List接口)

    首先我们说说集合有什么作用. 一.集合的作用 1.在类的内部,对数据进行组织: 2.简单而快速的搜索大数量的条目: 3.有的集合接口,提供一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关 ...

  7. java基础之集合框架--使用ArrayList类动态 存储数据

    一.ArrayList是List接口下的一个实现类,实现了长度可变的.连续的数组:拥有数组的特性. 遵循了LIst的规则:不唯一的.有序的. 如果没有增加泛型的话,集合中可以添加任何类型的数据. 使用 ...

  8. Java基础之集合框架——使用堆栈Stack<>对象模拟发牌(TryDeal)

    控制台程序. public enum Rank { TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING, A ...

  9. Java基础之集合框架——使用集合Vector<>挑选演员(TryVector)

    控制台程序. public class Person implements Comparable<Person> { // Constructor public Person(String ...

随机推荐

  1. Linux及安全实践五——字符集编码

    Linux及安全实践五——字符集编码 一.ASCII码 在表中查找出英文字母LXQ相对应的十六进制数值为: 4c 58 51 在终端中输入命令:vim test1.txt 在vim页面输入命令:%!x ...

  2. vim 折叠的用法

    http://www.cnblogs.com/fakis/archive/2011/04/14/2016213.html 1. 折叠方式 可用选项来设定折叠方式: 可在Vim 配置文件中设置 set ...

  3. bzoj 4451 : [Cerc2015]Frightful Formula FFT

    4451: [Cerc2015]Frightful Formula Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 177  Solved: 57[Sub ...

  4. UIImage加载图片的方式以及Images.xcassets对于加载方法的影响

    UIImage加载图片的方式以及Images.xcassets对于加载方法的影响 图片缓存 根据是否将创建好的对象缓存入系统内存,有两类创建UIImage对象的方法可选: 缓存:+ imageName ...

  5. ElasticStack系列之十二 & 搜索结果研究

    问题 使用 ElasticSearch 做搜索 时,比如用户输入 --> 柠檬,搜出来的结果 --> 柠檬汽水,柠檬味牙膏等在前面,真正想要的水果那个 柠檬 在后面.已经在中文分词中加了 ...

  6. NATS_03:NATS发布/订阅机制

    概念 发布/订阅(Publish/subscribe 或pub/sub)是一种消息范式,消息的发送者(发布者)不是计划发送其消息给特定的接收者(订阅者).而是发布的消息分为不同的类别,而不需要知道什么 ...

  7. P4514 上帝造题的七分钟

    P4514 上帝造题的七分钟 题意: 二维区间修改 区间查询 --- 错误日志: 写了个 4 重循环忘记调用 \(i\) Solution 二维树状数组 巨尼玛毒瘤 听说二维线段树会 \(MLE\) ...

  8. P3007 [USACO11JAN]大陆议会The Continental Cowngress

    P3007 [USACO11JAN]大陆议会The Continental Cowngress 题意: 给出 n 个法案, m 头牛的意见, 每头牛有两个表决 格式为 "支持或反对某法案&q ...

  9. LINUX 线程

    1.使用进程技术的优势(1)CPU时分复用,单核心CPU可以实现宏观上的并行(2)实现多任务系统需求(多任务的需求是客观的)2.进程技术的劣势(1)进程间切换开销大(2)进程间通信麻烦而且效率低3.解 ...

  10. ffmpeg的API函数用法 :sws_scale函数的用法-具体应用

    移植ffmpeg过程中,遇到swscale的用法问题,所以查到这篇文章.文章虽然已经过去很长时间,但是还有颇多可以借鉴之处.谢谢“咕咕钟. 转自:http://guguclock.blogspot.c ...