JavaSE数组(JavaSE大全)

JavaSE基础(三)(JavaSE大全)

上一章节:JavaSE循环(JavaSE大全)
JVM :java虚拟机
分为4大块
(1)栈区(stacksegment)存放函数的参数值,局部变量的值等,在超过这个变量的作用域是会被系统自动释放掉存于JVM内存中的资源 优点:存取速度比堆快 缺点:存在栈中的数据大小,与生存区必须是确定的,无灵活性
(2)堆区(heapsegment)存放由new创建的对象和数组,JVM不定时查看Scanner in=new scanner(system.in); 优点:可以动态分配JVM内存 缺点:要在运行时分配JVM内存 速度慢
(3)静态区
(4)代码区
数组:四步
(1)声明数组:告诉计算机数据类型是什么
(2)分配空间:告诉计算机分配几个格子
(3)赋值 : 向分配的格子里放数据
(4)处理数据
demo1

package com.zx.cn;

public class ShuZu {
	public static void main(String[] args) {
		int []arr=new int[5];
		arr[1]=22;
		System.out.println(arr[1]);
		
		int []arr2=new int[] {22,33,44,55,66};
		System.out.println(arr2[0]);
		
		String arr3[]=new String[5];
		if (arr3[0]==null) {
			System.out.println("此数组没有数据");
		}
	}
}

控制台

22
22
此数组没有数据

Java数组内存分析:
数组类型:(1)char[];(2)int[];(3)double[];(4)string[];(5)scanner[];(6)random[];
**数组length属性:**调整数组的长度
数组常见错误:(1)数组大小未写明
(2)数组越界
(3)创建数组并赋值的方式必须在一条语句中完成

demo2:求平均成绩

package com.zx.cn;

import java.util.Scanner;

public class ShuZuAvg {
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int arr[]=new int[3];
		int sum = 0;
		for(int i=0;i<arr.length;i++) {
			System.out.println("请输入第"+(i+1)+"个人的成绩");
			arr[i]=in.nextInt();
			sum=sum+arr[i];
		}
		int avg=sum/3;
		System.out.println("平均成绩为:"+avg);
	}
}

控制台

请输入第1个人的成绩
22
请输入第2个人的成绩
33
请输入第3个人的成绩
44
平均成绩为:33

数组排序:
Arrays类的sort()方法:对数组进行升序排列
Arrays.sort(数组名);
demo3:成绩排序

package com.zx.cn;

import java.util.Arrays;
import java.util.Scanner;

public class ArraySortMt {
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int[]arr=new int[3];
		for (int i = 0; i < arr.length; i++) {
			System.out.println("请输入第"+(i+1)+"个同学的成绩");
			arr[i]=in.nextInt();
		}
		Arrays.sort(arr);
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i]+"\t");
		}
	}
}

控制台

请输入第1个同学的成绩
33
请输入第2个同学的成绩
44
请输入第3个同学的成绩
35
33	35	44	

数组复制demo:

package com.zx.cn;

import java.util.Arrays;
//数组复制
public class ShuZuCopy {
	public static void main(String[] args) {
		int arrA[]=new int[] {1,2,5,8,9,10,6,3};
		int arrB[]=new int[arrA.length];
		//将数组A赋值挨个给数组B
		for (int i = 0; i < arrA.length; i++) {
			arrB[i]=arrA[i];
		}
		//排序
		Arrays.sort(arrB);
		for (int i = 0; i < arrB.length; i++) {
			System.out.println(arrB[i]);
		}
	}
}

1
2
3
5
6
8
9
10

数组查找demo

package com.zx.cn;

import java.util.Scanner;

//数组查找
public class ShuZuSelect {

	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		System.out.println("请输入你要查找的学生的姓名:");
		String name=in.next();
		String arr[]=new String[] {"张三","李四","王五","赵六"};
		boolean flag=true;
		for (int i = 0; i < arr.length; i++) {
			if (name.equals(arr[i])) {
				flag=true;
				break;
			}
		}
		if (flag=true) {
			System.out.println("找到此人");
		}else {
			System.out.println("没有这个人");
		}
	}

}

控制台

请输入你要查找的学生的姓名:
张三
找到此人

数组插入demo

package com.zx.cn;

import java.util.Scanner;

//数组插入算法
public class ShuZuInsert {

	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		System.out.println("请输入要插入的数字:");
		int num=in.nextInt();
		int arr[]=new int[] {2,3,7,8,15,22};
		arr[arr.length-1]=num;
		for (int i =arr.length-1;i>0; i--) {
			if (arr[i]<arr[i-1]) {
				int c=arr[i];
				arr[i]=arr[i-1];
				arr[i-1]=c;
			}
			break;
		}
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}

}

控制台

请输入要插入的数字:
10
2
3
7
8
10
15

数组冒泡排序demo

package com.zx.cn;

public class ShuZuMaoPao {
	//数组冒泡排序
		public static void main(String[] args) {
			int[] arr= new int[]{23,12,45,24,87,65,12,14};
			for(int j=0;j<arr.length-1;j++) {
			   for(int i=0;i<arr.length-1;i++) {
				if(arr[i]>arr[i+1]) {
					int a=arr[i+1];
					arr[i+1]=arr[i];
					arr[i]=a;
				}
			}
		}
			for(int i=0;i<arr.length;i++) {
				System.out.println(arr[i]);
			}
		}
}

控制台

12
12
14
23
24
45
65
87

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值