day6_自我总结
作者:互联网
一、回顾
-
方法
定义:
访问修饰符 返回值类型 方法的名称(参数列表){ 方法体; return 返回值; }
调用:
直接书写方法名,就可以调用 调用语法:方法的名称() 调用方式:赋值调用 打印调用 直接调用
注意点:
定义的注意事项: a.方法定义的时候,不能进行相互嵌套 b.方法没有上下级关系,所有方法都是平级 c.方法可以相互嵌套调用,甚至可以自己调用自己 调用的注意事项: a.方法参数 形参:形式参数 定义变量 多个形参使用逗号来进行分割 实参:实际参数 变量赋值 实际的参数要与形参数据类型以及顺序一致 b.return返回值 如果方法没有返回值 使用void进行修饰 只能使用return; 来结束方法 如果方法有返回值 就必须使用return来返回具体的数据 方法重载:在同一类中 方法名相同 参数不同(参数数据类型不同或者是参数的个数不同)与返回值与访问修饰符无关 方法的内存图:所有的方法在执行的时候 都会在栈内存中去开辟空间
-
数组
概念:用于存储一组相同数据类型的数据容器
数组动态初始化 语法:数组数据类型 [] 数组名称 = new 数组的数据类型[长度] 数组静态初始化 语法:数组的数据类型 [] 数组名称 = new 数组的数据类型[]{元素罗列} 简化:数组的数据类型 [] 数组名称 = {元素罗列} 数组赋值与取值 赋值:数组的名称[索引]=具体的值 取值:数组的名字[索引] jvm内存划分: 栈 堆 方法区 本地方法区 程序计数器 数组内存图: 一个数组创建的内存:数组在创建的时候 在内存中开辟的是一块连续的空间 二个数组创建的内存:不同的数组创建的时候 在内存中开辟不同的空间 两个数组的引用指向一个堆内存:任意一个引用修改数据 获取的都是修改后的数据 数组异常:空指针异常 数组下标越界异常
二、数组操作
2.1 数组最大值
/**
*需求-分析-代码
*/
public class Test08 {
public static void main(String[] args) {
//静态初始化一个数组
int [] arrays = {10,-1,20,30,6,25};
System.out.println(showMax(arrays));
}
//定义一个方法来求出最大值
public static int showMax(int [] arrays ){
int max=-1;
//必须对数组进行飞空验证
if (arrays !=null && arrays.length >0) {
//获取初始化
max=arrays[0];
//使用循环来依次进行比较
for (int i=0;i<arrays.length;i++) {
if (arrays [i] > max) {
//将值进行替换
max = arrays[i];
}
}
}
return max;
}
}
2.2 置换数组中的元素
/**
*需求-分析-代码
*/
/* 需求将数组中元素进行置换 置换的规则: 第一个元素 与最后一个元素 第二个元素 与倒着第二个元素进行置换 .... */
import java.util.Arrays;
public class Test09 {
public static void main(String[] args) {
//定义一个数组
// int [] arrays ={10,20,30,40,50};
// int [] arr =showInfo(arrays);
int []arr = showInfo(new int [] {10,20,30,40,50});
//toString() 将数组以字符串的格式来显示
System.out.println(Arrays.toString(arr));
}
/**
*
* @param arrays 数组
* @return 置换后的数组
*/
public static int [] showInfo(int [] arrays){
//对数组进行非空验证
if (arrays !=null && arrays.length >0) {
//使用循环遍历
for (int i =0;i<arrays.length/2;i++) {
//定义一个中间变量 来进行值的交换
int temp = arrays[i];
arrays[i]= arrays[arrays.length-1-i];
arrays[arrays.length-1-i]= temp;
}
}
return arrays;
}
}
2.3 查找指定元素在数组指定区间的索引值
step01 需求-分析
A.定义一个方法
访问修饰符 public static
返回值类型 int
参数 :数组 元素 开始索引 结束索引
方法体:
使用循环查找这个元素 并且返回索引值
step02 代码
public class Test10 {
public static void main(String[] args) {
System.out.println(getIndex(new int[]{10, 20, 30, 40, 50}, 200, 0, 2));
}
public static int getIndex(int [] arrays, int num,int startIndex,int endIndex){
//对数组进行非空验证
if (arrays !=null && arrays.length >0) {
//对开始的索引与结束索引需要处理
//&& startIndex <arrays.length
if (startIndex >=0 && endIndex >=startIndex && endIndex <arrays.length){
for (int i =startIndex;i<=endIndex;i++) {
//使用if来判断是否有此元素
if (num == arrays[i]) {
//返回索引
return i;
}
}
}
}
//如果返回值是-1 表示没有查找到此元素
return -1;
}
}
2.4 生成扑克牌
step02 分析
A.定义两个数组
一个数组是花色
一个数组是点数
B.使用嵌套for循环来获取数组中的花色与点数
step03 代码
public class Test11 {
public static void main(String[] args) {
//定义一个数组
String [] color ={"♦","♣","♥","♠"};
//定义一个数组 表示点数
String [] nums = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
//使用双重for循环来遍历
for (int i=0;i<color.length;i++) {
for (int j=0;j<nums.length;j++) {
//定义一个字符串拼接
String s =color[i]+nums[j];
System.out.print(s+"\t");
}
System.out.println("");
}
}
}
2.5 在数组的指定位置插入元素
step01 需求
数组元素 1 3 5 60 90 null(默认值)
向数组中插入一个值为35
数组元素 1 3 5 35 60 90 按照升序进行排序
step02 分析
step03 代码
import java.util.Arrays;
import java.util.Scanner;
public class Test13 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//动态初始化一个数组
int [] arrays = new int[6];
//给数组赋值
arrays[0]=1;
arrays[1]=3;
arrays[2]=5;
arrays[3]=60;
arrays[4]=200;
//定义一个变量来记录其索引值
int index =-1;
System.out.println("请输入要插入的数据");
int num = input.nextInt();
//使用循环来查找第一个比插入值大的索引值
for (int i=0;i<arrays.length;i++) {
//使用if选择节奏判断
if (arrays[i] >num) {
index = i;
//结束循环
break;
}
}
if (index ==-1){
index = arrays.length-1;
}else {
//将数组中元素进行移动
for (int j=arrays.length-1;j>index;j--) {
arrays[j] =arrays[j-1];
}
}
//进行值的插入
arrays[index] = num;
//打印输出数组中元素
System.out.println(Arrays.toString(arrays));
}
}
三、冒泡排序
import java.util.Arrays;
public class Test12 {
public static void main(String[] args) {
//定义一个数组
int [] arrays = {20,10,-1,70,15};
//第一个for循环 控制比较的轮数
for (int i=0;i<arrays.length-1;i++) {
//第二个for循环控制比较次数
for (int j=0;j<arrays.length-1-i;j++) {
//前面两个元素进行比较
if (arrays[j] > arrays [j+1]) {
//进行值的交换
int temp = arrays[j];
arrays[j] =arrays[j+1];
arrays[j+1] = temp;
}
}
}
System.out.println(Arrays.toString(arrays));
}
}
标签:总结,day6,元素,自我,int,static,数组,arrays,public 来源: https://www.cnblogs.com/zhenglyz/p/16491987.html