数组
为什么有数组
(单一值类型的变量不能存放多个数据,无法满足一些程序设计的需求了,这个时候,就有数组。)
什么是数组
(数组是同一种数据类型的多个元素的容器。)
数组的特点
1(只能是同一种数据类型的元素)
2(数组是按连续内存空间存放的)
3(数组的长度一旦确定,便不能更改)
数组的使用
(1)(声明(数据类型[]数组名;)int[]array;//声明一个int类型的数组,数组的名字是array。--注意,声明后,数组中是没有元素的
(2)初始化(--所谓初始化,就是维数组开辟内存空间,并为数组中的每个元素赋值)(A.动态初始化)数组名 = new 数据类型[数组大小]。注意:使用new关键字创建数组对象的时候,必须制定数组的大小(长度)默认初始值:int----0;float----0.0;double----0.0;char----;boolean--false;String----null(B静态初始化):给出初始值,不指定长度(数组长度=元素个数)(int【】arr=new int【】{。。。。。。。}
数组的访问:
数组的每个元素要用 数组名[下标]的方式进行访问
数组的下标从0开始的,最下标是0,最大下标是数组长度-1。下标(索引):index。如果访问时,数组小标不在最小范围内,编译器(语法检查)不会报错,运行会报(数组下标越界异常)
数组遍历:
对数组元素从头到尾操作一次,这个动作我们称为“遍历”
数组拷贝(复制)
因为数组的大小是固定的,所以使用数组的时候,市场不得不常见一个更大或更小的数组。然后把已存在的数组中的内容复制到新的数组中,
1.创建一个新数组,通过for循环挨个拷贝的。
2.System类中提供了一个方法arraycapy(),专于数组元素的拷贝。(System.Arraycapy(src,srcPos,dest,destpos,length)
第一个参数:src ,拷贝的原数组数组名
第二个参数:srcPos,(int)开始拷贝原数组的下标
第三个参数:dest,拷贝的目标新数组数组名
第四个参数:destPos,(int)目标新/数组的开始下标、、
第五个参数:length,(int)拷贝的长度
把数组转换成字符串的函数(Arrays.toString(数组名))
冒泡排序:
前面的是一次与后面的进行比较,大的换到后面。
随机数
随机数(random)
产生一个随机数,不需要我们自己去写算法,java里面提供了产生随机数的方法,Math.random()
作用,用于产生一个[0,1]的随机数
Math.radom()
返回类型,double
返回值,0-1,取不到1
生成随机整数: Math.radom()*(最大数减-最小值)+最小值
二维数组
二维数组:
就是用行列的形式表示的表格,表格中的每个元素的数据类型是同一种数据类型
用两个下标去共同指定某个元素。行列的下标都是从0开始的(偏移量的差值)
所有的多维数组,最终都是一维数组的元素又是一个数组。
长度获取:
int[][] arr = new int[][];
arr.length获取的二维数组行的个数(i)
arr[i].length获取的是二维数组列的个数(j)
二维数组的遍历(两个循环)
桌面窗口
//消息弹框
JOptionPane.showMessageDialog(null,"huann");
//输入弹框
String str = JOptionPane.showInputDialog(null,"请输入");//返回的是一个字符串
int a = Integer.parseInt(str);//把字符串str转换为int类型
String str2 = JOptionPane.showInputDialog(null,"请输入");//返回的是一个字符串
int b= Integer.parseInt(str);//把字符串str2转换为int类型
JOptionPane.showMessageDialog(null,"a+b="+(a+b)+"a-b="+(a-b)+"a*b="+(a*b)+"a/b="+(a/b));