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. HDU 2896 病毒侵袭 AC自己主动机题解

    本题是在text里面查找key word的增强版.由于这里有多个text. 那么就不能够简单把Trie的叶子标志记录改动成-1进行加速了,能够使用其它技术.我直接使用个vis数组记录已经訪问过的节点, ...

  2. Win32 进程间通信的分析与比较(13种方法)

    1 进程与进程通信 进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码.数据以及它可利用的系统资源(如文件.管道等)组成.多进程/多线 程是Windows操作系统的一个基本特征.M ...

  3. C++能在三个地方创造对象,而Delphi只有一个地方

    C++能在堆栈.堆.资料区创造对象. 但是Delphi只能在堆上创造对象

  4. 用户界面线程AfxBeginThread的使用

    用户界面线程在运行时会有一个窗口界面和与其相对应的窗口函数,所以它可以通过响应消息来和用户进行交互. AfxBeginThread 函数原型如下: CWinThread *AfxBeginThread ...

  5. innerHeight与clientHeight、innerWidth与clientWidth、scrollLeft与pageXOffset等属性

    区分innerHeight与clientHeight.innerWidth与clientWidth.scrollLeft与pageXOffset等属性 标签: innerheight clienthe ...

  6. 恢复PasswordChar 默认值、取消密码框设置

    //三种都是清空 this.textBox1.PasswordChar = new char(); this.textBox1.PasswordChar = '\0'; this.textBox1.P ...

  7. 代码格式化工具Astyle配置

    Astyle是一个很好的代码格式化工具,其他不多说,下面介绍一下我在VS 2010的配置 1. http://sourceforge.net/projects/astyle,这是该插件的网站,下载后把 ...

  8. wxpython 32 位 ,python 64 位问题

    在安装Python Wxpython模块后,导入包的时候,会提示不支持64位的支持,需要安装Pythons 32 位,或者强制,使用Python 32 模式运行即可 在终端输入: defaults w ...

  9. QString ini ;转义符

    ini如果value字符串中存在:,通过双引号即可转义 [a] b=sdc";"gf

  10. C#面试-总结

    1.override,overload的区别(鲁班联盟面试题) 笔试场景: 当时写反了区别 正确答案: override(重写,覆盖) 1.方法名.参数.返回值相同. 2.子类方法不能缩小父类方法的访 ...