知识大纲
一、数组的应用
由于数组是用来存储数据的,所以,它的操作总是增、删除、改、查的操作。
数组做为一种最基本的数据结构,它在查询上效率是最高的。但是在增加、
删除的操作效率是最低的。

因为,
数组的长度一旦确定,是不能改变的,所以,你新增元素时,需要
重新扩展一个更大的数组出来。
数组元素一旦删除,则它后面的所有的元素都要依次向前移动1次。

---------------------
int[] arr1 = new int[5];
int[] arr2 = arr1; //ok
//此处只创建了1个对象,但是有2个引用,这2个引用指向一个对象。
如:
arr2[3] = 100;
System.out.println(arr1[3]); // 100

------------------
数组元素的COPY
有2种方式
1.利用 System.arraycopy 方法
System.arraycopy(
Object src //源数组
,int srcPos //源数组哪个位置开始
,Object dest //目标数组
,int destPos //目标数组哪个位置开始放
,int length //从源数组中COPY多少个元素到目标数组
);
注:使用此方法前,源数组与目标数组都必需初始化。
如:
int[] arr1 = new int[]{1,2,3,4,5}; //[1 2 3 4 5]
int[] arr2 = new int[arr1.length+2]; //[0 0 0 0 0 0 0]
//
System.arraycopy(arr1,1,arr2,2,arr1.length-2);
//此时,arr2中的元素是:[0 0 2 3 4 0 0 ]

此方法的效率非常好。

2. 利用 java.util.Arrays类的工具方法
int[] copyOf(int[] original, int newLength);
此方法有很多重载,它的作用是基于original数组与长度来创建一个
新的数组,这个新数组的元素值与original的元素是一样的,如果这个
newLength大于original 数组长度,则多出的元素以0填充,如果这个
newLength小于original 数组长度,则把多出的元素截取掉。

如:
int[] arr1 = new int[]{1,2,3,4,5};
int[] arr2 = Arrays.copyOf(arr1,arr1.length);
//则arr2的元素值与arr1是一模一样的。
int[] arr3 = Arrays.copyOf(arr1, arr1.length + 2);
//arr3 元素是 [1 2 3 4 5 0 0]
int[] arr4 = Arrays.copyOf(arr1 arr1.length - 2);
//arr4 元素是 [1 2 3 ]

---
Arrays数组工具类
toString 方法
copyOf 方法
fill 方法
...

Java笔记6-数组的更多相关文章

  1. Java笔记(八)……数组

    数组的概念 同一种类型数据的集合.其实数组就是一个容器. 数组的好处 可以自动给数组中的元素从0开始编号,方便操作这些元素. 数组的格式 元素类型[] 数组名 = new 元素类型[个数]; int[ ...

  2. Java笔记之数组

    1.int flags[] = new int[10];数组中的每个元素初始化为0. Arrays.fill(flags, 0);将数组中每个元素置为0.

  3. [java笔记]动态数组

    private int count;//计数器 private int ary[] = new int [3]; if(count >= ary.length){ //数组动态扩展 int ne ...

  4. [java小笔记] 关于数组内存管理的理解

    数组是大多数编程语言都提供的一种复合结构,如果程序需要多个类型相同的变量时,就可以考虑定义一个数组,java语言的数组变量时引用类型的变量,因此具有java引用变量的特性.在使用数组之前必须对数组对象 ...

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

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

  6. java笔记 -- 数组

    概念: 数组是一种数据结构, 用来存储同一类型值的集合. 通过一个整型的下标可以访问数组中的每一个值. 声明: int[] a(推荐,将类型int[](整形数组)和变量名分开了) 或者int a[] ...

  7. 菜鸡的Java笔记 第七 - java 数组

    数组的基本概念     笔试中经常出现的试题或是问题    1.1 概念        数组指的是一组相关变量的集合         如果用最原始的方式定义100个变量的话没问题但是这些变量的关联实在 ...

  8. Effective Java笔记一 创建和销毁对象

    Effective Java笔记一 创建和销毁对象 第1条 考虑用静态工厂方法代替构造器 第2条 遇到多个构造器参数时要考虑用构建器 第3条 用私有构造器或者枚举类型强化Singleton属性 第4条 ...

  9. Thinking in Java 笔记

    大二就买了这本书,如今再看这本书,看到了一些以前没看的细节,也有了不同的体会.本文使用第4版,整理每章的笔记心得.老外的书有个特点,他会花费大量的文字去阐述一个概念,这比堆代码强多了. 第 1 章 对 ...

  10. java笔记整理

    Java 笔记整理 包含内容     Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...

随机推荐

  1. Trying to hack Redis via HTTP requests

    Trying to hack Redis via HTTP requests Context Imagine than you can access a Redis server via HTTP r ...

  2. Bilinear Filter

    参考资料: 1. 维基百科Biliner Filtering 2. 维基百科Texture Filtering 3.维基百科Bilinear Interpolation 4. 维基百科Bilinear ...

  3. tcp/ip详解-ip头部选项字段

    IP头部的选项字段 作用:用于网络调试和测试 IP首部的可变部分就是一个可选字段.选项字段用来支持排错.测量以及安全等措施,内容很丰富.此字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目 ...

  4. java.lang.OutOfMemoryError: PermGen space异常处理(内存溢出)

    楼主刚接触到这个问题,问度娘,直接查到的都是让 在tomcat>bin>catalina.sh文件的“echo "Using CATALINA_BASE: $CATALINA_B ...

  5. unindent does not match any outer indentation level

    报错原因: 空格与tab键混用,一般粘贴代码时会出现 解决方法: 把所有缩进取消,然后用tab键来缩进

  6. equals方法的小结

    尽管经常使用equals,也可能理解不一定神,最近又要使用Collections.sort看到了这些,总结的不错. 首先equals方法必须满足自反性.对称性.传递性和一致性. 自反性(x.equal ...

  7. gameui-for-phaser-js更新到最新版本

    Hola Cantk是一个功能强大的游戏引擎,它拥有丰富的GUI控件,配合Hola Studio可以快速开发出游戏的UI界面.Phaser是一个流行而且强大的游戏引擎,但是它的GUI控件很少,而且缺乏 ...

  8. linux -- 基于mysql tomcat 部署web项目

    一.导入数据库 二.配置web项目访问端口 vim /var/lib/tomcat8/conf/server.xml <Connector port=" protocol=" ...

  9. CSS3中的Transition属性详解

    w3c标准中对CSS3的transition这是样描述的:“CSS的transition允许CSS的属性值在一定的时间区间内平滑地过渡.这种效果可以在鼠标单击.获得焦点.被点击或对元素任何改变中触发, ...

  10. 【转】selenium之 定位以及切换frame

    转载自:http://www.voidcn.com/blog/huilan_same/article/p-6155896.html 很多人在用selenium定位页面元素的时候会遇到定位不到的问题,明 ...