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. NodeJs 实时压缩 项目js文件

    + 1. 下载nodejs : "http://nodejs.org/". + 2. 以administrator权限打开cmd.+ 3. cmd路径定位到要压缩的目录: &quo ...

  2. 好消息:8月25日广州嵌入式Linux开发免费项目约定你

    8月18日,粤嵌深圳分校举行了盛大的免费嵌入式项目体验,众多嵌入式爱好者排队参加项目体验的火爆场景仿佛还在眼前,体验效果得到学员一致好评.时隔一周,粤嵌广州总部也不容落后,在粤嵌广州总部举办<嵌 ...

  3. POJ 2286 The Rotation Game 迭代搜索深度 + A* == IDA*

    感觉这样的算法还是比較局限的吧,反复搜索是一个不好的地方,并且须要高效的估值函数来进行强剪枝,这点比較困难. 迭代搜索深度是一个比較炫酷的搜索方式,只是有点拿时间换空间的感觉. 首先迭代深度比較搓的写 ...

  4. poj 2054 Color a Tree(贪婪)

    # include <stdio.h> # include <algorithm> # include <string.h> using namespace std ...

  5. Google 开源项目风格指南阅读笔记(C++版)

    虽说是编程风格指南,可是干货也不少,非常多C++的有用技术在里面. 头文件 通常每一个.cpp文件都相应一个.h文件:#define保护全部头文件都应该使用#define防止头文件被多重包括,为保证唯 ...

  6. RHEL Server 6.3下MySQL5.5.25a源码安装

    OS:RHEL Server 6.3 MySQL:mysql-5.5.25a.tar.gz 相关依赖包: ncurses-5.9.tar.gz bison-2.5.tar.gz 安装MySQL 一.安 ...

  7. res/drawable目录

    在Android Eclipse项目中res/目录下包含有drawable-ldpi/,drawable-mdpi/,drawable-hdpi/,drawable-xhdpi/目录,这几个目录的后缀 ...

  8. Hadoop应用开发实战(flume应用开发、搜索引擎算法、Pipes、集群、PageRank算法)

    Hadoop是2013年最热门的技术之一,通过北风网robby老师<深入浅出Hadoop实战开发>.<Hadoop应用开发实战>两套课程的学习,普通Java开发人员可以在最快的 ...

  9. SPSS Modeler数据挖掘项目实战(数据挖掘、建模技术)

    SPSS Modeler是业界极为著名的数据挖掘软件,其前身为SPSS Clementine.SPSS Modeler内置丰富的数据挖掘模型,以其强大的挖掘功能和友好的操作习惯,深受用户的喜爱和好评, ...

  10. [欧拉回路+手动开栈] poj 1780 Code

    题目链接: http://poj.org/problem? id=1780 Code Time Limit: 1000MS   Memory Limit: 65536K Total Submissio ...