【数组的定义数组与内存的关系】
数组的定义&数组与内存的关系
- 数组的定义
- 数组定义的语法
- 数组的初始化
- 数组元素的表示与赋值
- 数组插入:
- 数组与内存的关系
- 数组的基本操作
- 插入数值
- 修改元素
- Arrays类的常用方法
- 总结
数组的定义
JAVA中的数组
在Java中,数组就是一个变量,用于将相同数据类型的数据存储在内存。数组中的每一个数据元素都属于同一数据类型
数组定义的语法
数据类型[] 数组名 = new 数据类型[数组长度]
或者
数据类型 数组名[] = new 数据类型[数组长度]
–>定义数组是一定要指定数组名和数据类型
–>必须书写“[]”表示定义的一个数组,而不是一个普通的变量
–>【“数组长度”】决定的分配空间的个数,通过数组的length属性可获取此长度
–>数组的数据类型用于确定分配的每个空间大小
数组的初始化
语法格式:
数据类型【】数组名={值1,值2,值3…值n};
或者
数据类型【】数组名=new 数组类型【】{值1,值2,值3…值n};
数组元素的表示与赋值
语法:
数组名【下标值】=值;
数组插入:
1.先把数组使用冒泡排序排列为升序排列
2.把输入的值循环判断,是否大于数组中的某一个元素
如果大于,数组元素中的元素下标赋给定义的下标值,
结束循环,break;
3.把数组中的元素后移,从数组元素中倒数第二个数开始
大于等于定义的下标值,然后循环元素后移
4.插入,数组中等于定义的下标值,等于输入插入的数字
5.循环输出看结果是否正确
数组与内存的关系
程序在堆内存开辟一块连续的空间
数组的基本操作
package one04;
import java.util.Scanner;
public class Score03 {public static void main(String[] args) {//数组删除元素//先提示用户输入需要删除的手机品牌如果不存在index等于-1给用户一个提示没有您需要删除的元素//如果存在,获取元素的下标,然后循环便利,用后面数组的元素覆盖住这个下标//再然后,把数组最后一个没有的元素给定义为null//然后for循环便利不为空的元素,这样删除元素就完成了Scanner input=new Scanner(System.in);int index=-1;String[] names={"苹果","三星","vivo","华为"};System.out.println("请输入要删除的数组元素:");String name=input.next();for (int i = 0; i < names.length; i++) {if(name.equals(names[i])){index=i;}}if(index==-1){System.out.println("没有您要删除的元素!");}else{for (int i = index; i < names.length-1; i++) {names[i]=names[i+1];}names[names.length-1]=null;System.out.println("删除后的数组元素:");for (int i = 0; i < names.length; i++) {if(names[i]!=null){System.out.println(names[i]);}}}}
}
插入数值
package one04;
import java.util.Scanner;
public class Score01 {public static void main(String[] args) {//从数组里添加元素//定义一个int类型的变量//for循环遍历数组元素判断空间是否已满,如果为空可以添加,把数组下标给int类型变量//如果空间已满,变量为-1给出一个提示,空间已满int index=-1;Scanner input=new Scanner(System.in);String[] names={"苹果","三星","vivo","华为",null};for (int i = 0; i < names.length; i++) {if(names[i]==null){System.out.println("请输入要添加的手机品牌:");names[i]=input.next();index=i;break;}}if(index==-1){System.out.println("空间已满!不可添加!");}for (int j = 0; j < names.length; j++) {System.out.println(names[j]);}}}
修改元素
package one04;import java.util.Scanner;public class Score02 {public static void main(String[] args) {//修改数组中的元素//提示用户输入需要修改的手机品牌//for循环便利,如果找到就提示输入新的手机品牌然后break退出循环//然后打印一遍修改后的值int index=-1;Scanner input=new Scanner(System.in);String[] names={"苹果","华为","三星","vivo","opop"};;System.out.println("请输入要修改的手机品牌:");String name=input.next();for (int i = 0; i < names.length; i++) {if(name.equals(names[i])){index=i;System.out.println("请输入新的手机品牌:");names[i]=input.next();break;}}if(index==-1){System.out.println("您输入的手机品牌不存在!");}else{for (int i = 0; i < names.length; i++) {System.out.println(names[i]);}}}}
Arrays类的常用方法
方法名 返回类型 作用
equals(array1,array2); boolean 比较两个数组长度是否相等
sort(array) void 对数组Array的元素进行排序
toString(array) String 讲一个数组array转换成一个字符串
fill(array,val) void 将数组array的所有元素都赋值为val
copyOf(array,length) 与array数据类型一致 把数组array复制成一个长度为length的新数组
binarySearch(array,val) int 查询元素值val在数组中的下标
总结
数组的作用方便存储相同类型的数据
使用数组要根据数组的下标来进行操作
遍历一个数组根据数组的下标来遍历
求最大值,循环对比如果i大于i+1那么不用换位置,如果小于就换位置,循环完毕i的值就是最大值
总结
数组的作用方便存储相同类型的数据
使用数组要根据数组的下标来进行操作
遍历一个数组根据数组的下标来遍历
求最大值,循环对比如果i大于i+1那么不用换位置,如果小于就换位置,循环完毕i的值就是最大值