一、集合框架工具类: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. 面向对象高级编程(1)-使用__slots__

    使用__slots__ 正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性.先定义class: >>> ...

  2. 怎样将Android SDK源码 导入到Eclipse中?

    在Eclipse中导入android sdk源码 http://blog.csdn.net/hahahacff/article/details/8590649

  3. Educational Codeforces Round 26 D dp

    D. Round Subset time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...

  4. 怎样彻底卸载(删除)SQL server2000

    如何完全卸载SQL server 2000 一.卸载安装程序:找到电脑右下角的Windows开始按钮,找到控制面板——卸载程序. 找到server 2000的安装程序,并点击后面的卸载按钮.  是,确 ...

  5. caffe 用faster rcnn 训练自己的数据 遇到的问题

    1 . 怎么处理那些pyx和.c .h文件 在lib下有一些文件为.pyx文件,遇到不能import可以cython 那个文件,然后把lib文件夹重新make一下. 遇到.c 和 .h一样的操作. 2 ...

  6. 科学计算三维可视化---Traits(Property属性)

    Property属性 使用Property函数为类创建Property属性,Property属性用法和一般属性相同,但是他在获取值和赋值时会调用相应的方法 traits库也提供了Property属性 ...

  7. js计时器方法的使用

    js中计时器重要使用window.setInterval()方法和window.setTimeout()方法, 其中setInterval()方法的作用是每隔一段时间执行一次方法,而window.se ...

  8. poj 1284 Primitive Roots (原根)

    Primitive Roots http://poj.org/problem?id=1284 Time Limit: 1000MS   Memory Limit: 10000K       Descr ...

  9. 算法习题-FFT

    Q1(hdu1402): 给出两个很大的数字A,B,计算二者乘积. 分析:这个题目java应该能过,用FFT做能够加速计算.这里将字符串A按权(10进制)展开,前面的系数就是多项式的系数,这样就构造出 ...

  10. python 日期时间处理

    # 获取日期: import datetime #调用事件模块 today =datetime.date.today() #获取今天日期 deltadays =datetime.timedelta(d ...