ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

day6_自我总结

2022-07-18 21:00:43  阅读:141  来源: 互联网

标签:总结 day6 元素 自我 int static 数组 arrays public


一、回顾

  1. 方法

    定义:

    访问修饰符  返回值类型  方法的名称(参数列表){
    	方法体;
    	return 返回值;
    }
    

    调用:

    直接书写方法名,就可以调用
    调用语法:方法的名称()
    调用方式:赋值调用   打印调用   直接调用
    

    ​ 注意点:

    定义的注意事项:
    	a.方法定义的时候,不能进行相互嵌套
    	b.方法没有上下级关系,所有方法都是平级
    	c.方法可以相互嵌套调用,甚至可以自己调用自己
    调用的注意事项:
    	a.方法参数
    		形参:形式参数  定义变量  多个形参使用逗号来进行分割
    		实参:实际参数  变量赋值  实际的参数要与形参数据类型以及顺序一致
    	b.return返回值
    		如果方法没有返回值 使用void进行修饰  只能使用return; 来结束方法
    		如果方法有返回值  就必须使用return来返回具体的数据
    方法重载:在同一类中 方法名相同 参数不同(参数数据类型不同或者是参数的个数不同)与返回值与访问修饰符无关
    方法的内存图:所有的方法在执行的时候  都会在栈内存中去开辟空间
    
  2. 数组

    概念:用于存储一组相同数据类型的数据容器

    数组动态初始化
    	语法:数组数据类型 [] 数组名称 = 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有