java学习笔记04--数组

数组复制的方法是使用System类提供的arraycopy()方法,其语法如下:

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

System.arraycopy(源数组,源数组中的起始位置,目标数组,目标数据中的起始位置,要复制的数组元素的数量);

  1. public class T {
  2. public static void main(String args[]){
  3. int arr1[] = {1,2,3,4,5};
  4. int arr2[] = new int[5];
  5. System.arraycopy(arr1, 0, arr2, 0, 5);
  6. for (int i = 0; i < arr2.length; i++) {
  7. System.out.println(arr2[i]);
  8. }
  9. }
  10. }

Arrays类

对数组的一些基本操作,像排序、搜索与比较等都是很常见的。在java中提供了Array是类可以协助您作这几个操作,Array是类位于java.util包中,他提供了几个方法可以直接使用。

sort()                       帮助您对指定的数组排序,所使用的是快速排序法

binarySearch()      让您对已排序的数组进行二元搜索,如果找到指定的值就返回该值所在的索引,否则就返回负值

fill()                           当您配置一个数组之后,会依据数据类型来给定默认值。例如整数数组就初始值为0,可以使用Arrays.fill()方法将所有的元素设置为指定的值

equals()                   比较两个数组中的元素值是否全部相等,如果是将返回true,否则返回false

  1. import java.util.Scanner;
  2. import java.util.Arrays;
  3. public class T {
  4. public static void main(String[] args) {
  5. Scanner scanner = new Scanner(System.in);
  6. int[] arr = { 93, 5, 3, 55, 57, 7, 2, 73, 41, 91 };
  7. System.out.print("排序前: ");
  8. for (int i = 0; i < arr.length; i++){
  9. System.out.print(arr[i] + " ");
  10. }
  11. System.out.println();
  12. Arrays.sort(arr);
  13. System.out.print("排序后: ");
  14. for (int i = 0; i < arr.length; i++){
  15. System.out.print(arr[i] + " ");
  16. }
  17. System.out.print("\n请输入搜索值:");
  18. int key = scanner.nextInt();
  19. int find = -1;
  20. if ((find = Arrays.binarySearch(arr, key)) > -1) {
  21. System.out.println("找到值于索引 " + find + " 位置");
  22. } else
  23. System.out.println("找不到指定值");
  24. }
  25. }

执行结果:

  1. 排序前: 93 5 3 55 57 7 2 73 41 91
  2. 排序后: 2 3 5 7 41 55 57 73 91 93
  3. 请输入搜索值:5
  4. 找到值于索引 2 位置

下面使用Arrays来进行数组的填充与比较

  1. import java.util.Arrays;
  2. public class T {
  3. public static void main(String[] args) {
  4. int[] arr1 = new int[10];
  5. int[] arr2 = new int[10];
  6. int[] arr3 = new int[10];
  7. Arrays.fill(arr1, 5);
  8. Arrays.fill(arr2, 5);
  9. Arrays.fill(arr3, 10);
  10. System.out.print("arr1: ");
  11. for (int i = 0; i < arr1.length; i++){
  12. System.out.print(arr1[i] + " ");
  13. }
  14. System.out.println("\narr1 = arr2 ? " + Arrays.equals(arr1, arr2));
  15. System.out.println("arr1 = arr3 ? " + Arrays.equals(arr1, arr3));
  16. }
  17. }

执行结果

    1. arr1: 5 5 5 5 5 5 5 5 5 5
    2. arr1 = arr2 ? true
    3. arr1 = arr3 ? false

java学习笔记04--数组的更多相关文章

  1. Java学习笔记 04 类和对象

    一.类和对象的概念 类 >>具有相同属性和行为的一类实体 对象 >>实物存在的实体.通常会将对象划分为两个部分,即静态部分和动态部分.静态部分指的是不能动的部分,被称为属性,任 ...

  2. Java学习笔记七——数组工具类Arrays

    数组工具类Arrays Java提供的Arrays类里包含的一些static修饰的方法可以直接操作数组.若将里面的方法用熟的话,那开发效率会大大提高.下面介绍其中的方法. List<T> ...

  3. java学习笔记六——数组

    数组类型 数组是一种常见的数据结构,可用于存放多个数据,每一个数组元素存放一个数据,通常可以通过下标进行访问其元素. Java数组要求所有数组元素具有相同的数据类型.因此,数组元素的数据类型是唯一的. ...

  4. PHP学习笔记04——数组

    <?php // 1.数组的声明,可以直接为数组元素赋值,也可以使用array函数声明数组 /* 索引数组:下标从0开始,依次递增 * 关联数组:字符串为下标 * */ //直接赋值声明数组,不 ...

  5. 【原】Java学习笔记012 - 数组

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:小店对自己的 ...

  6. 【原】Java学习笔记011 - 数组

    package cn.temptation; import java.util.Scanner; public class Sample01 { public static void main(Str ...

  7. 【原】Java学习笔记010 - 数组

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:一堆分数,要 ...

  8. Java学习笔记day04_数组

    1.switch case switch语句中表达式的数据类型是有要求的: JDK 1.0 ~ 1.4 , 数据类型接受byte, short, int, char JDK 1.5 , 数据类型接受b ...

  9. 1.14(java学习笔记)数组

    假如我们需要用到1000个相同类型的数据,肯定不可能创建1000个变量, 这样既不方便,也不直观,也不便于我们使用.这时就需要用到数组. 一.数组的声明与使用 public class Array { ...

  10. Java学习笔记:04面向对象-内部类_访问修饰符_final

    04面向对象-内部类/访问修饰符/final 1.static的介绍 static:关键字,静态的 static的作用是用来修饰类中的成员 2.访问一个类中的某一个成员变量 方法一: _1.创建对象 ...

随机推荐

  1. 浙江大学PAT上机题解析之3-05. 求链式线性表的倒数第K项

    给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字. 输入格式说明: 输入首先给出一个正整数K,随后是若干正整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理). 输出 ...

  2. 八:Java之I/O

    一.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java全部的I/O机制都是基于数据流进行输入输出.这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读 ...

  3. 解决yum升级的问题“There was a problem importing one of the Python modules”

    yum命令升级的时候,报出这个错误. There was a problem importing one of the Python modules required to run yum. The ...

  4. 基于visual Studio2013解决C语言竞赛题之1029二元数组平均值

          题目 解决代码及点评 /* 功能:求二维数组中每行元素的平均值,不许引入其它的数组 时间:16:21 2013/10/24 */ #include<stdio ...

  5. C#、WinForm、ASP.NET - Md5散列加密

     MD5值概念解释: 转载自:http://free0007.iteye.com/blog/2047163 所 谓MD5,即"Message-Digest Algorithm 5(信息-摘要 ...

  6. 文本面板——axure线框图部件库介绍

    文本部件用于在页面中显示文字,对于文字的格式可以随意的更改,设定不同的字体.尺寸和颜色. 特别注意:文本面板的高度无法直接调整,它的高度是随着字体的大小自动变化的 在6.5版本中,对文本的排版都有2个 ...

  7. PB+MS SQL+触发器必须指出

    PB+MS SQL+触发器必须指出: 若触发器存在两笔以上的返回值,比方两条update 语句,被误判为数据有改变.存盘不成功. 提示: Row changed between retrieve an ...

  8. jquery ajax局部加载方法介绍

    [导读] 在jquery中实现ajax加载的方法有很多种,不像以前的js的ajax只有那一种,下面我们介绍jquery ajax实现局部加载方法总结,有需要了解的朋友可参考.例 代码如下复制代码 $ ...

  9. 开源力量公开课第三十期- 跟我一起玩转OpenStack

    开源力量公开课第三十期- 跟我一起玩转OpenStack 开课时间:2013年9月10日 18:30 - 21:30 形式:现场(北京3W咖啡) + 线上直播,   免费报名:http://www.o ...

  10. 基于visual Studio2013解决面试题之0304镜像二叉树

     题目