美文网首页
Java 基础拾遗(二)

Java 基础拾遗(二)

作者: android_ls | 来源:发表于2017-12-17 22:23 被阅读10次

这篇我们来复习下针对数组常用的一些方法。
1、优化过的快速排序法

int[] array = {11,12,232,32,23,18,34};
Arrays.sort(array);// 升序
System.out.println(Arrays.toString(array));  //  [11, 12, 18, 23, 32, 34, 232]

对数组中的元素,从第几个到第几个进行排序

int[] array = {7, 18, 32, 3, 12, 10, 6, 3, 5};
// 对数组中的元素,从第3个到第7个进行排序
Arrays.sort(array, 2, 7);
for (int i = 0; i < array.length; i++) {
     System.out.println(array[i]);
}
// result=[7, 18, 3, 6, 10, 12, 32, 3, 5]

从结果我们可以看到是这样的一个区间"[...)",包括索引是2的元素,不包括索引是7的元素

2、二分查找法,返回元素在数组中的索引

int[] array = {11, 12, 32, 34, 28, 29, 100};
int index = Arrays.binarySearch(array, 32); 
System.out.println("index = " + index); // result=2

若是查找不到,则返回(-插入点-1)

int[] array = {11, 12, 32, 34, 28, 29, 100};
int index = Arrays.binarySearch(array, 23); 
System.out.println("index = " + index); // result=-3 (-3 = -2 - 1)

3、System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);

int[] src = {1, 2, 3, 4, 5};
int[] dest = {18, 27};
// 第一个参数:原数组
// 第二个参数:从原数组的第几个元素开始取
// 第三个参数:目标数组
// 第四个参数:将从原数组中取到的第一个元素,存入目标数组的第几个元素
// 第五个参数:从原数组取几个数据,这个值的大小要小于等于目标数组的大小
System.arraycopy(src, 1, dest, 0, 2); // result=[2, 3]
for (int i = 0; i < dest.length; i++) {
   System.out.println(dest[i]);
}

注意: 第五个参数,这个值要是大于目标数组的大小,就会报如下错误

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at com.miliyo.test.Main.main(Main.java:25)

4、比较两个数组中的元素是否完全一致

int[] array1 = {7, 18, 32, 3, 12, 10, 6, 3, 5};
int[] array2 = {7, 18, 32, 3, 12, 10, 6, 3, 5};
boolean result = Arrays.equals(array1, array2);
System.out.println("result = " + result); // result = true

相关文章

  • Java 拾遗(之二)

    Java 拾遗(之二) 背景 上一篇《拾遗》只是对Java语言基础知识的一个笼统的梳理,有些之前接触不太多的,或者...

  • Java 基础拾遗(二)

    这篇我们来复习下针对数组常用的一些方法。1、优化过的快速排序法 对数组中的元素,从第几个到第几个进行排序 从结果我...

  • java基础拾遗

    说说&和&&的区别。 &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为tru...

  • java SE目录

    java SE目录 java基础(一)java基础(二)关键字面向对象(一)面向对象(二)面向对象(三)集合(一)...

  • Java基础拾遗(一)

    虽然这个专栏系列旨在告诉大家如何快速的开发一个Android原生的app,但是工欲善其事,必先利其器。因此,在开始...

  • Java 基础拾遗(三)

    简单解释下:1、一个矩形框表示一个类。类图分三层,第一层是类名称,如果是抽象类则用斜体显示。第二层是该类的特性(属...

  • java基础:Enum — 源码分析

    其他更多java基础文章:java基础学习(目录) 学习资料Java 7 源码学习系列(二)——EnumJava的...

  • Java 拾遗二

    1. HashMap 和 HashTable 的区别 HashMap 是 HashTable 的一个轻量级的实现;...

  • 异步编程之Future和Promise

    最近在拾遗JS基础,看到Promise,总觉得和Java中的Future有联系,放在一块对比总结一下,加深记忆。 ...

  • 你所需要的java提升篇大总结

    java基础篇深入解析大总结 java基础(一) 深入解析基本类型 java基础(二) 自增自减与贪心规则 jav...

网友评论

      本文标题:Java 基础拾遗(二)

      本文链接:https://www.haomeiwen.com/subject/csnuwxtx.html