Java中数组的使用
1.声明数组
1.1声明一维数组
声明一维数组有下列两种格式:
数组的元素类型 数组名字[ ];
数组的元素类型[ ] 数组名字
1.2声明二维数组
声明二维数组有下列两种格式:
数组的元素类型 数组名字[ ][ ];
数组的元素类型[ ] [ ] 数组名字;
例如:
float boy[ ];
char cat[ ][ ];
Java数组声明注意以下两点内容:
1.数组的元素类型可以是Java中的任何一种类型(包括自定义类型)。
2.Java中不允许在声明数组中的方括号内指定数组元素的个数。
2.创建数组
声明数组仅仅是给出了数组名字和元素的数据类型,想要真正使用数组还必须为它分配内存空间,即创建数组。
为数组分配内存空间的格式如下:
数组名字 = new 数组元素的类型[数组元素的个数];
例如:
boy=new float[4];
数组变量boy中存放着这些内存单元的首地址,该地址被称为数组的引用,这样数组就可以通过索引操作这些内存单元。
声明数组和创建数组可以一起完成,例如:
float boy[ ] = new float[4];
二维数组与一维数组一样,声明之后要为它分配内存空间,例如:
int boy[ ][ ];
boy=new int[2][3];
或
int boy[ ][ ]=new int[2][3];
二维数组的创建需要注意以下几点:
1.一个二维数组是由若干个一维数组构成。
2.构成二维数组的一维数组不必有相同的长度,在创建二维数组时可以分别指定构成该二维数组的一维数组的长度。例如:
int a[ ][ ]=new int[3][ ];
a[0]=new int[6];
a[1]=new int[12];
a[2]=new int[8];
3.Java允许使用int型变量的值指定数组元素的个数。例如:
int size=30;
double number[ ]=new double[size];
3.Java数组的一些便捷操作
3.1 length的使用
数组的元素个数称为数组长度。对于一维数组,“数组名字.length”的值就是数组中元素的个数。对于二位数组,“数组名字.length”的值是它含有的一维数组的个数。
3.2 数组初始化
创建数组后,系统会给每一个数组元素一个默认的值,例如,float型是0.0。
在声明数组时同时也可以给数组的元素一个初始值,例如:
float boy[ ]={21.3f,23.89f,2.0f,778.98f};
也可以直接用若干个一维数组初始化一个二维数组,这些一维数组的长度不尽相同。
3.3 数组的引用
数组属于引用型变量,因此,两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。引用的指向就是堆空间的前地址。
3.4 数组的表示格式
Arrays.toString(a),可以将数组a中的元素以字符串形式输出,例如:
int [ ]a={1,2,3,4,5,6}
Arrays.toString(a)得到的字符串是:
[1,2,3,5,6]
3.5 数组中的常用方法
复制数组方法:arraycopy方法、copyOf方法、copyOfRange方法
排序方法:sort方法
二分查找方法:binarySearch
4.实验演示
代码:
public class Test { public static void main(String[] args) {
// TODO Auto-generated method stub
int num1[]; //声明一维数组 或int[] num1
int num2[][]; //声明二维数组 或者 int[][] num2 num1=new int[8]; //创建一维数组
num2=new int[3][]; //创建二维数组num2[0],num2[1],num2[2]还没对这三个数组分配空间暂时不能使用 for(int i=0;i<=5;++i) { //给一维数组赋值
num1[i]=i;
}
for(int i=0;i<3;++i) {
num2[i]=new int[6]; //给二维数组中的每一个数组分配空间
for(int j=0;j<6;++j) {
num2[i][j]=j*i; //赋值
}
} int num3[]=new int[6];
for(int i:num3) { //数组打印方式
System.out.print(i+" "); //创建后默认的数组值为0
}
System.out.print("\n"); int num4[][]= {{1},{1,2},{1,2,3}};//数组初始化,组成二维数组的一维数组长度可以不同
System.out.println(num4[0].length+" "+num4[1].length+" "+num4[2].length); //数组的使用
System.out.println(num1.length+" "+num2[0].length);//输出数组的空间长度 int a[]= {1,2,3},b[]= {1,2};
a=b; //数组引用的使用,引用的指向就是堆空间的前地址
for(int i:a) {
System.out.print(i+" ");
}
System.out.print("\n");
System.out.println(Arrays.toString(b)); //利用Arrays.toString可以将数组内的内容转换成字符串快速输出数组 //对于char类型数组输出
char ch[]= {'a','b','c','d'};
System.out.println(ch); //输出char数组内的内容
System.out.println(""+ch);//输出数组的引用 char ch1[]= {'a','b','c','d'};
char ch2[]= {'e','f','g'};
System.arraycopy(ch2,0,ch1,1,3);//用ch2数组中从下标为0的元素开始的三个元素,覆盖ch1数组中下标为1开始的三个元素
System.out.println(ch1); char ch3[]=new char[5];
ch3=Arrays.copyOf(ch2, 3);//将ch2数组中从下标为0开始的三个元素,赋值给数组ch3;
System.out.println(Arrays.toString(ch3)); char ch4[]=new char[5];
ch4=Arrays.copyOfRange(ch2,1,3);//将ch2数组中从下标为1开始的2个元素,赋值给数组ch4;
System.out.println(Arrays.toString(ch4)); int num5[]= {1,7,5,12,34,3,23};
Arrays.sort(num5);//将num5中的数字从小到大排序
System.out.println(Arrays.toString(num5)); int index;
index=Arrays.binarySearch(num5,5);//二分查找num5数组中5的位置
System.out.println(index); }
}
实验结果:
Java中数组的使用的更多相关文章
- java中数组的相关知识
1. 2.数组的命名方法 1)int[]ages=new int[5]; 2) int[]ages; ages=new int[5]; 3)int[]ags={1,2,3,4,5}; 4)int[ ...
- Java中数组的特性
转载:http://blog.csdn.net/zhangjg_blog/article/details/16116613 数组是基本上所有语言都会有的一种数据类型,它表示一组相同类型的数据的集合,具 ...
- 在java 中,数组与 List<T> 类型的相互转换
在java中,数组与List<T> 之前进行互相转换,转换方法可总结为以下几种: 一. 将 数组转换成List<T> 1. 使用 Collections 的addAll 方法 ...
- Java中数组的初始化方式
Java中数组的初始化方式 初始化方式有两种: 1.静态初始化:初始化时由程序猿显式指定每一个数组元素的初始值,由系统指定数组长度 2.动态初始化:初始化时由程序猿仅仅指定数组长度,由系统为数组 ...
- java中数组复制的两种方式
在java中数组复制有两种方式: 一:System.arraycopy(原数组,开始copy的下标,存放copy内容的数组,开始存放的下标,需要copy的长度); 这个方法需要先创建一个空的存放cop ...
- Java中数组的插入,删除,扩张
Java中数组是不可变的,但是可以通过本地的arraycop来进行数组的插入,删除,扩张.实际上数组是没变的,只是把原来的数组拷贝到了另一个数组,看起来像是改变了. 语法: System.arrayc ...
- java中数组、集合、字符串之间的转换,以及用加强for循环遍历
java中数组.集合.字符串之间的转换,以及用加强for循环遍历: @Test public void testDemo5() { ArrayList<String> list = new ...
- Java 中数组的内存分配
Java 中数组的内存分配 1.Java 程序在运行时,需要在内存中分配空间.为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据和内存管理方式. 2.数组基本概念 数组是 ...
- 将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)
方法一:使用Arrays.asList()方法 1 2 String[] asset = {"equity", "stocks", "gold&q ...
- 【Java面试题】18 java中数组有没有length()方法?string没有lenght()方法?下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d";
数组没有length()这个方法,有length的属性.String有有length()这个方法. int a[]; a.length;//返回a的长度 String s; s.length();// ...
随机推荐
- GPU版TensorFlow怎么指定让CPU运行
由于某些原因GPU版的TensorFlow运行起来会出现一些问题,比如内存溢出等情况.此时我们可以用CPU和系统内存来运行我们的程序. 代码如下: import osos.environ[" ...
- 原生js实现多个随机大小颜色位置速度小球的碰壁反弹
文章地址 https://www.cnblogs.com/sandraryan/ 需求:生成n个小球,让他们在一个大盒子中碰壁反弹,要求小球随机颜色,大小,初始位置,运动速度. 思路分析: 创建小球随 ...
- iptablesIP规则的保存与恢复
iptables-save把规则保存到文件中,再由目录rc.d下的脚本(/etc/rc.d/init.d/iptables)自动装载 使用命令iptables-save来保存规则.一般用 iptabl ...
- JAVA总结---序列化的三种方式
序列化和反序列化 序列化:可以将对象转化成一个字节序列,便于存储. 反序列化:将序列化的字节序列还原 优点:可以实现对象的"持久性", 所谓持久性就是指对象的生命周期不取决于程序. ...
- IDEA sql自动补全/sql自动提示/sql列名提示
一.启用idea的database插件 File->Settings->Plugins 搜索Database Tools and SQL 选择Enable 启用或者勾选 二.新建Datab ...
- Roslyn NameSyntax 的 ToString 和 ToFullString 的区别
本文告诉大家经常使用的 NameSyntax 拿到值的 ToString 和 ToFullString 方法的区别 从代码可以看到 NameSyntax 的 ToString 和 ToFullStri ...
- 【u212】&&【t036】最大和
Time Limit: 1 second Memory Limit: 128 MB [问题描述] N个数围成一圈,要求从中选择若干个连续的数(注意每个数最多只能选一次)加起来,问能形成的最大的和. [ ...
- laravel5数据库配置及其注意事项
今天分享一个Laravel5数据库配置上的坑. Laravel5作为一套简洁.优雅的PHP Web开发框架(笑),唯一不足的一点就是中文手册或者说是资料比较少,虽然现在很多大神也开始普及这些东西,但是 ...
- P1015 高精度乘法
题目描述 给你两个很大的正整数A和B,你需要计算他们的乘积. 输入格式 输入一行包含两个正整数A和B,以一个空格分隔(A和B的位数都不超过 \(10^4\)) 输出格式 输出一行包含一个整数,表示A和 ...
- cookie小总结
对cookie总结 cookie 在服务器的环境下,对数据的本地存储下面为一个小小的案例 let d= new Date; d.setDate(d.getDate()+7); document.coo ...