java基础37 集合框架工具类Collections和数组操作工具类Arrays

时间:2022-05-26 09:07:07

一、集合框架工具类: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基础之集合框架&lpar;转载&rpar;

    集合简介(容器)把具有相同性质的一类东西,汇聚成一个整体,就可以称为集合,例如这里有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&lt&semi;&gt&semi;对象模拟发牌(TryDeal)

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

  9. Java基础之集合框架——使用集合Vector&lt&semi;&gt&semi;挑选演员(TryVector)

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

随机推荐

  1. AC自动机---个人总结

    比较好的 AC自动机算法详解.. [转]http://www.cppblog.com/mythit/archive/2009/04/21/80633.html 个人总结:[图是盗用的..] ac自动机 ...

  2. Asp&period;Net MVC 在后台获取PartialView、View文件生成的字符串

    在Asp.net MVC的实际开发中,有时需要在后台代码中获取某个View 或者 PartialView 生成的字符串,示例如下: 1. 将View文件输出为字符串: /// <summary& ...

  3. 80806汇编&lpar;5&rpar;——&lbrack;BX&rsqb;和Loop指令

    80806汇编(5)--[BX]和Loop指令 已经好久没写点东西了,国庆节就一直想弄个个人网站,这段时间一直在弄那个,虽然有现成的框架(Hexo),但是总想弄出自己的效果来,但是最后还是有些差强人意 ...

  4. Django 1&period;10中文文档-第一个应用Part1-请求与响应

    在本教程中,我们将引导您完成一个投票应用程序的创建,它包含下面两部分: 一个可以进行投票和查看结果的公开站点: 一个可以进行增删改查的后台admin管理界面: 我们假设你已经安装了Django.您可以 ...

  5. &lbrack;Codeforces&rsqb;852I - Dating

    题目大意:给定一棵n个点的树,每个点上有一个汉子或妹子,每人有一个权值,每次询问一条链上选出一对权值相等的男女有多少种选法.(n,q<=10^5) 做法:比较显然的树上莫队,熟悉序列莫队那套理论 ...

  6. c代码写数据到二进制的bin文件中

    需要将数据写入到bin文件中,打开该文件是一堆乱码,增加数据的保密性 例如:要写入的数据为一个字符串,加上若干个int型整数 #define _CRT_SECURE_NO_WARNINGS #incl ...

  7. 用kafka实现消息推送

    一个人知道的Topic是单点推送,大家都知道Topic是广播. kafka消息消费机制: 1.广播消费:通过定义topic前缀来标识属于广播的消息(例如:topicname:gonggao153568 ...

  8. UVa Live 4670 Dominating Patterns - Aho-Corasick自动机

    题目传送门 快速的通道I 快速的通道II 题目大意 给定一堆短串,和一个文本串,问哪些短串在文本串中出现的次数最多. 我觉得刘汝佳的做法,时间复杂度有问题.只是似乎这道题短串串长太短不好卡.比如给出的 ...

  9. poj 2406 Power Strings(kmp应用&rpar;

    题目链接:http://poj.org/problem?id=2406 题意:给出一个字符串s,求重复子串出现的最大次数. 分析:kmp的next[]数组的应用. 要求重复子串出现的最大次数,其实就是 ...

  10. 【RF库XML测试】测试的XML文件说明

    文件存放路径:C:\workspace\robotframework\test_rf_api\testdata\XML.xml 文件内容: <example> <first id=& ...