Java Arrays 用法
目录
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 用法相关推荐
- java反射用法示例_Java反射示例教程
java反射用法示例 Java Reflection provides ability to inspect and modify the runtime behavior of applicatio ...
- java resume过时方法_学点开发|关于Java多线程用法解析
在进行学习之前,我们先来了解下,什么是Java多线程: 多线程是实现并发机制的一种有效手段.进程和线程一样,都是实现并发的一个基本单位.为了让大家更清晰读懂关于Java多线程用法,由以下几点入手学,帮 ...
- java正则表达式用法示例_Java正则表达式教程及示例
java正则表达式用法示例 当我开始使用Java时,正则表达式对我来说是一场噩梦. 本教程旨在帮助您掌握Java正则表达式,并让我定期返回以刷新我的正则表达式学习. 什么是正则表达式? 正则表达式定义 ...
- java list用法_Java List 用法详解及实例分析
Java List 用法详解及实例分析 Java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对Java List用法做了详解. List:元素是有序的(怎么存的就怎么取出来,顺 ...
- java反射用法示例_Java包| 类型,用法,示例
java反射用法示例 配套 (Packages) Packages in Java is simply a mechanism to encapsulate (i.e. to put in a sho ...
- 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:// ...
- Java SimpleDateFormat用法
1. SimpleDateFormat类 SimpleDateFormat是一个日期格式化类,用来格式化日期. // 构造方法 public SimpleDateFormat(String patte ...
- Java split()用法,使用特殊字符要注意了
Java split()用法,使用特殊字符要使用转义字符. 特殊字符有 * ^ : | . \ 1.单个符号作为分隔符 特殊符号* .split("\\*"); 特殊符号^ .s ...
- Java Calendar用法
1. Calendar初始化 Calendar calendar = Calendar.getInstance(); 默认返回GregorianCalendar实例,在GregorianCalenda ...
最新文章
- iOS之深入了解控制器View的加载
- [转载] Web Service工作原理及实例
- linux多线程基本编程
- JDK 11上的JavaFX
- 前端学习(581):使用element调试dom 查看和调试dom节点
- fragment在activity中的静态和动态用法_使用Matlab修改压缩Gif动态图片制作微信表情...
- 阶段性总结_学习笔记
- 只有ajax会跨域吗_为什么跨域Ajax是安全问题?
- PEB标记反调试方法
- “舌尖上的安全”:基于区块链构建四位一体的食品安全社会共治体系
- 计算机设计大赛校赛攻略(郑州轻工业大学)
- kindle paper write1 kindle pw1 安装多看系统 or 原本是多看双系统,升级kindle系统后多看系统消失,解决方法降级kindle系统+重装kindle系统
- 忘记 Apple ID 密码?重设 Apple ID 密码的 3 种方法
- 微信支付time_expire时间过短,刷卡至少1分钟,其他5分钟
- 23_ElsaticSearch 搜索推荐ngram分词机制实现index-time
- Qt使用两组RadioButton,两组之间相互独立
- 使用ERDAS对国产卫星影像进行控制点正射校正—以高分二号卫星(GF2)为例
- java计算器 算法_怎样用java 实现计算器的 算法
- 《灰色と青 (灰色与青) 》歌词(平假名注释)
- HiJackThis(HJT)日志在线自动分析服务
热门文章
- UGUI Button HighlightedColor 高亮问题(基础篇)
- 微信小程序中怎么使用阿里图标库中的图标
- String系列简介
- centos虚拟机设置禁止休眠
- 【实践】NLP领域中的ERNIE模型在阅读理解中的应用
- JavaScript-数组及数组元素操作
- 【Unity游戏开发教程】零基础带你从小白到超神16——四种方法控制人物移动之角色控制器
- 烈火如歌手游找回服务器,烈火如歌手游机缘任务触发前置条件大全 烈火如歌机缘任务攻略...
- 消费增速未反转:网购跌破15%辉煌不再 汽车降幅收窄
- 【ZT】【BPI-M64试用体验】〇〇五之:烧录Ubuntu16.04到-eMMC-中(包含系统汉化教程