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 ...
随机推荐
- Android Studio 简单设置
转自:http://ask.android-studio.org/?/article/14 界面设置 默认的 Android Studio 为灰色界面,可以选择使用炫酷的黑色界面.Settings - ...
- js之oop <二> 对象属性
js中对象属性可以动态添加和删除.删除对象属性用delete关键字. function obj(){ } var oo = new obj(); oo.a = "a"; oo.b ...
- Pycharm使用问题# 行号设置
设置行号就很简单了,在Settings中找到Editor-Appearance,选中Show line numbers即可.
- USACO2007Monthly Expense月度开销
Description Farmer John是一个令人惊讶的会计学天才,他已经明白了他可能会花光他的钱,这些钱本来是要维持农场每个月的正常运转的.他已经计算了他以后N(1<=N<=100 ...
- 【转】 CPU大小端
大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中:小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中. 为什么会有大小端模式之分呢?这是因为 ...
- web组件
慕课网:http://www.imooc.com/learn/99 js 在实战中的分层: 应用层 框架组件-框架通用组件.定制组件.独立组件 框架core(框架核心层) 浏览器底层
- to my friends-Don't give up so fast
早上听到大学挺要好的朋友突然说要换行,心情就一股莫名的哀伤,因为当初是三个人一起约定好的,要朝着我们共同的目标而努力奋斗的,这股热情怎能这么轻易地被现实的冷水浇灭.没错,我们是刚出社会的毛头小子,我们 ...
- iOS iPad开发之UIPopoverController的使用
1. 什么是UIPopoverController? 是iPad开发中常见的一种控制器(在iphone上不允许使用) 跟其他控制器不一样的是,它直接继承自NSObject,并非继承自UIViewCon ...
- javascript的坑
1 for in循环:使用它时,要主要遍历的是所有可枚举的属性(实例以及原型中的属性) function Person(name){ this.name = name; } Person.protot ...
- 百度定位并获取县区天气-XML+fragment+sqlite
此工程较BaiduLocationXMLFragment相比:1.加入数据库部分,将获取到的地址 天气存入数据库中,离线状态显示数据库最后一条记录 sqlite: DatabaseHelper.ja ...