Java笔记6-数组
知识大纲
一、数组的应用
由于数组是用来存储数据的,所以,它的操作总是增、删除、改、查的操作。
数组做为一种最基本的数据结构,它在查询上效率是最高的。但是在增加、
删除的操作效率是最低的。
因为,
数组的长度一旦确定,是不能改变的,所以,你新增元素时,需要
重新扩展一个更大的数组出来。
数组元素一旦删除,则它后面的所有的元素都要依次向前移动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-数组的更多相关文章
- Java笔记(八)……数组
数组的概念 同一种类型数据的集合.其实数组就是一个容器. 数组的好处 可以自动给数组中的元素从0开始编号,方便操作这些元素. 数组的格式 元素类型[] 数组名 = new 元素类型[个数]; int[ ...
- Java笔记之数组
1.int flags[] = new int[10];数组中的每个元素初始化为0. Arrays.fill(flags, 0);将数组中每个元素置为0.
- [java笔记]动态数组
private int count;//计数器 private int ary[] = new int [3]; if(count >= ary.length){ //数组动态扩展 int ne ...
- [java小笔记] 关于数组内存管理的理解
数组是大多数编程语言都提供的一种复合结构,如果程序需要多个类型相同的变量时,就可以考虑定义一个数组,java语言的数组变量时引用类型的变量,因此具有java引用变量的特性.在使用数组之前必须对数组对象 ...
- 【原】Java学习笔记011 - 数组
package cn.temptation; import java.util.Scanner; public class Sample01 { public static void main(Str ...
- java笔记 -- 数组
概念: 数组是一种数据结构, 用来存储同一类型值的集合. 通过一个整型的下标可以访问数组中的每一个值. 声明: int[] a(推荐,将类型int[](整形数组)和变量名分开了) 或者int a[] ...
- 菜鸡的Java笔记 第七 - java 数组
数组的基本概念 笔试中经常出现的试题或是问题 1.1 概念 数组指的是一组相关变量的集合 如果用最原始的方式定义100个变量的话没问题但是这些变量的关联实在 ...
- Effective Java笔记一 创建和销毁对象
Effective Java笔记一 创建和销毁对象 第1条 考虑用静态工厂方法代替构造器 第2条 遇到多个构造器参数时要考虑用构建器 第3条 用私有构造器或者枚举类型强化Singleton属性 第4条 ...
- Thinking in Java 笔记
大二就买了这本书,如今再看这本书,看到了一些以前没看的细节,也有了不同的体会.本文使用第4版,整理每章的笔记心得.老外的书有个特点,他会花费大量的文字去阐述一个概念,这比堆代码强多了. 第 1 章 对 ...
- java笔记整理
Java 笔记整理 包含内容 Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...
随机推荐
- 标准DSO设置
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- C语言语法之关键字
注:该内容整理自以下链接. http://www.cnblogs.com/yezhenhan/archive/2011/10/16/2214420.html 由ANSI标准定义的C语言关键字共32个: ...
- Gson手动序列化POJO(工具类)
gson2.7版本 只是简单的工具类(练习所用): package pojo; import javax.xml.bind.annotation.XmlSeeAlso; import com.goog ...
- tab选项卡(选择上面的菜单,下面出现对应的不同的内容)
使用jQuery完成 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- 加强型无穷集合:InfiniteList<T>,可指定遍历方向和偏移量,只要集合有元素并且偏移量不为 0,将永远遍历下去。
主类: public class InfiniteList<T> : IEnumerable<T> { public List<T> SourceList { ge ...
- org.apache.commons.lang.StringUtils类
org.apache.commons.lang.StringUtils类 本文摘自:(http://www.blogjava.net/japper/archive/2012/05/23/378946. ...
- Android开发--ScrollView的应用
1.简介 当内容无法全部显示时,需要采取滚动的方式获取其与内容.其中,ScrollView为垂直滚动控件,HorizontalScrollView为水平滚动控件. 2.构建
- 《Linux内核设计与实现》课本第一章&第二章学习笔记
<Linux内核设计与实现>课本学习笔记 By20135203齐岳 一.Linux内核简介 Unix内核的特点 Unix很简洁,所提供的系统调用都有很明确的设计目的. Unix中一切皆文件 ...
- 配置jdk
java_home :D:\apps\common\jdk\jdk8\jdk18045\jdk1.8.0_45 classpath: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HO ...
- iOS开发多线程篇—自定义NSOperation
iOS开发多线程篇—自定义NSOperation 一.实现一个简单的tableView显示效果 实现效果展示: 代码示例(使用以前在主控制器中进行业务处理的方式) 1.新建一个项目,让控制器继承自UI ...