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 ...
随机推荐
- 遍历List中的object对象
我的解决方法是 List<Object[]> list = queryTrans; for (Object[] o : list) { for (int q = 0; q < o.l ...
- hibernate中设置BigDeCimal的精度
@Column(precision = 12, scale = 2) 在MySQL数据库中的精度为:
- 解决 scroll() position:fixed 抖动、导航菜单固定头部(底部)跟随屏幕滚动
一.导航栏或者页脚正常情况下固定在页面的相应位置,当页面滚动后,导航栏或者页脚固定在页面的顶部或者底部的情景 一般就是将该块的代码样式的position设置为fixed.固定在顶部的话,将top设置为 ...
- Ant-style path patterns
[转载]http://blog.itpub.net/29959940/viewspace-1385870/ Ant path 匹配原则路径匹配原则(Path Matching) Spring MVC中 ...
- [ubuntu14.04 amd64 ]搜狗拼音輸入法安裝
这个网址下载之后,双击下载的deb文件http://mirrors.sohu.com/deepin/pool/non-free/f/fcitx-sogoupinyin-release/ 就会在ubun ...
- 51nod 1412 AVL树的种类(dp)
题目链接:51nod 1412 AVL树的种类 开始做的时候把深度开得过小了结果一直WA,是我天真了.. #include<cstdio> #include<cstring> ...
- MYSQL57密码策略修改
1.查看当前的密码测试 show variables like 'validate_password%';
- Jmeter 录制脚本
Jmeter中有2种方法可以录制脚本. 不过我个人非常不推荐录制脚本,录制的脚本混乱,需要再次加工才能使用. 像我这么精通HTTP协议的人. 一直都是使用Fiddler来抓包,然后自己写脚本. 无论 ...
- BZOJ2095 [Poi2010]Bridges
首先二分答案...然后这张图变成了有一些有向边,有一些无向边 然后就是混合图欧拉回路的判断 我们知道如果是有向图,它存在欧拉回路的等价条件是所有点的出度等于入度 对于混合图...先不管有向边,把无向边 ...
- at
1.这个命令对于自己建立的虚拟机很有帮助,比如你想过半个小时关机: [root@oc3408554812 ~]# at now + 30 minutesat> cd /tmp -h nowat& ...