目录

1. 将数组转成集合对象

2. 在数组中二分查找指定元素key

3. 将数组的一部分拷贝出来( newLength 这个是从被拷贝数组头元素开始算)

4. 将数组的一部分指定范围拷贝出来(有区别于上面)

5. 判断两个数组是否相等(内部元素是否完全相同)个人感觉有点鸡肋

6. 将数组所有元素用指定元素替换(相当于初始化操作)

7. 将数组的指定位置元素用指定元素替换(相当于部分初始化操作)

8. 将数组进行内部排序 个人为这个 api 疯狂打 call(虽然对数组排序不难,但是我还是不想写,嘻嘻,用 api 老爽了 !)

9. 将数组进行输出操作 (用于调试的时候,特别方便)


1. 将数组转成集合对象

API: List<T> asList();

举例?:

String[] words = new String[]{"I", "Love", "China", "!"};
List<String> numberList = Arrays.asList(words);

2. 在数组中二分查找指定元素key

API: int binarySearch(int[] a, int key);

举例?:打印结果为,查找的元素在数组中的角标位置

 int[] numbers = new int[]{1, 2, 3, 4, 5, 6};System.out.println(Arrays.binarySearch(numbers, 5));

注意点?:对于自定义对象类型(非数值、非字符、等),需要添加比较器,例如?:对于自定义person数组的二分查找

class PersonComparator implements Comparator<Person>{@Overridepublic int compare(Person o1, Person o2) {return o1.age - o2.age;}
}
class Person{String name;int age;public Person(String name, int age){this.name = name;this.age = age;}
}
public class Main {public static void main(String[] args) {Person[] persons = new Person[]{new Person("张三", 10), new Person("李四", 12), new Person("王五", 16)};System.out.println(Arrays.binarySearch(persons, new Person("王五", 16), new PersonComparator()));}
}

3. 将数组的一部分拷贝出来( newLength 这个是从被拷贝数组头元素开始算)

API: T[] copyOf(T[], int newLength);

String[] words = new String[]{"I", "Love", "China", "!"};
String[] subWords = Arrays.copyOf(words, 2);

4. 将数组的一部分指定范围拷贝出来(有区别于上面)

API: T[] copyOfRange(T[], int from, int to);

String[] words = new String[]{"I", "Love", "China", "!"};
String[] subWords = Arrays.copyOfRange(words, 1, 3);

温馨提示:Java关于数组等等的操作,都是包含头不包含尾,例如?面的代码,1,3 得到的 subWords = {"Love", "China"}

5. 判断两个数组是否相等(内部元素是否完全相同)个人感觉有点鸡肋

API: boolean equals(T[], T[]);

String[] words = new String[]{"I", "Love", "China", "!"};
String[] another = new String[]{"I", "Love", "China", "!!!"};
System.out.println(Arrays.equals(words, another));

注意点:如果比较的是两个自定义对象数组,对于自定义的对象要复写自身的 equals 方法

6. 将数组所有元素用指定元素替换(相当于初始化操作)

API: void fill(T[], T);

String[] words = new String[]{"I", "Love", "China", "!"};
Arrays.fill(words, "Yes");

7. 将数组的指定位置元素用指定元素替换(相当于部分初始化操作)

API: void fill(T[], int fromIndex, int toIndex, T);

String[] words = new String[]{"I", "Love", "China", "!"};
Arrays.fill(words, 1, 2, "Yes");

8. 将数组进行内部排序 个人为这个 api 疯狂打 call(虽然对数组排序不难,但是我还是不想写,嘻嘻,用 api 老爽了 !)

API: void sort(T[]); 排序方式:默认是从小到大

API: void sort(T[], comparator);自定义对象数组,需要给出比较器才能进行排序操作,比较器写法参照第二点

API: void sort(T[], int fromIndex, int toIndex); 指定部分排序

int[] numbers = new int[]{1, 3, 2, 5, 4};
Arrays.sort(numbers);

注意点:如果对自定义的对象数组进行排序的时候,需要写比较器,具体的比较器写法参照上面第二点

9. 将数组进行输出操作 (用于调试的时候,特别方便)

API: String toString(T[]);

int[] numbers = new int[]{1, 3, 2, 5, 4};
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers));

注意点:如果是对自定义的对象数组调用 Arrays.toString() 方法时,数组中的元素自身要实现 toString()方法

Java Arrays 用法相关推荐

  1. java反射用法示例_Java反射示例教程

    java反射用法示例 Java Reflection provides ability to inspect and modify the runtime behavior of applicatio ...

  2. java resume过时方法_学点开发|关于Java多线程用法解析

    在进行学习之前,我们先来了解下,什么是Java多线程: 多线程是实现并发机制的一种有效手段.进程和线程一样,都是实现并发的一个基本单位.为了让大家更清晰读懂关于Java多线程用法,由以下几点入手学,帮 ...

  3. java正则表达式用法示例_Java正则表达式教程及示例

    java正则表达式用法示例 当我开始使用Java时,正则表达式对我来说是一场噩梦. 本教程旨在帮助您掌握Java正则表达式,并让我定期返回以刷新我的正则表达式学习. 什么是正则表达式? 正则表达式定义 ...

  4. java list用法_Java List 用法详解及实例分析

    Java List 用法详解及实例分析 Java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对Java List用法做了详解. List:元素是有序的(怎么存的就怎么取出来,顺 ...

  5. java反射用法示例_Java包| 类型,用法,示例

    java反射用法示例 配套 (Packages) Packages in Java is simply a mechanism to encapsulate (i.e. to put in a sho ...

  6. json:JSONObject包的具体使用(JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包)...

    1.JSONObject介绍 JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包. 2.下载jar包 http:// ...

  7. Java SimpleDateFormat用法

    1. SimpleDateFormat类 SimpleDateFormat是一个日期格式化类,用来格式化日期. // 构造方法 public SimpleDateFormat(String patte ...

  8. Java split()用法,使用特殊字符要注意了

    Java split()用法,使用特殊字符要使用转义字符. 特殊字符有 * ^ : | . \ 1.单个符号作为分隔符  特殊符号* .split("\\*"); 特殊符号^ .s ...

  9. Java Calendar用法

    1. Calendar初始化 Calendar calendar = Calendar.getInstance(); 默认返回GregorianCalendar实例,在GregorianCalenda ...

最新文章

  1. iOS之深入了解控制器View的加载
  2. [转载] Web Service工作原理及实例
  3. linux多线程基本编程
  4. JDK 11上的JavaFX
  5. 前端学习(581):使用element调试dom 查看和调试dom节点
  6. fragment在activity中的静态和动态用法_使用Matlab修改压缩Gif动态图片制作微信表情...
  7. 阶段性总结_学习笔记
  8. 只有ajax会跨域吗_为什么跨域Ajax是安全问题?
  9. PEB标记反调试方法
  10. “舌尖上的安全”:基于区块链构建四位一体的食品安全社会共治体系
  11. 计算机设计大赛校赛攻略(郑州轻工业大学)
  12. kindle paper write1 kindle pw1 安装多看系统 or 原本是多看双系统,升级kindle系统后多看系统消失,解决方法降级kindle系统+重装kindle系统
  13. 忘记 Apple ID 密码?重设 Apple ID 密码的 3 种方法
  14. 微信支付time_expire时间过短,刷卡至少1分钟,其他5分钟
  15. 23_ElsaticSearch 搜索推荐ngram分词机制实现index-time
  16. Qt使用两组RadioButton,两组之间相互独立
  17. 使用ERDAS对国产卫星影像进行控制点正射校正—以高分二号卫星(GF2)为例
  18. java计算器 算法_怎样用java 实现计算器的 算法
  19. 《灰色と青 (灰色与青) 》歌词(平假名注释)
  20. HiJackThis(HJT)日志在线自动分析服务

热门文章

  1. UGUI Button HighlightedColor 高亮问题(基础篇)
  2. 微信小程序中怎么使用阿里图标库中的图标
  3. String系列简介
  4. centos虚拟机设置禁止休眠
  5. 【实践】NLP领域中的ERNIE模型在阅读理解中的应用
  6. JavaScript-数组及数组元素操作
  7. 【Unity游戏开发教程】零基础带你从小白到超神16——四种方法控制人物移动之角色控制器
  8. 烈火如歌手游找回服务器,烈火如歌手游机缘任务触发前置条件大全 烈火如歌机缘任务攻略...
  9. 消费增速未反转:网购跌破15%辉煌不再 汽车降幅收窄
  10. 【ZT】【BPI-M64试用体验】〇〇五之:烧录Ubuntu16.04到-eMMC-中(包含系统汉化教程