ICode9

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

day06 笔记

2022-01-11 11:31:17  阅读:128  来源: 互联网

标签:ch nums int day06 笔记 number char 数组


day06 笔记

一.数组定义

定义数组:
  数组类型 [] 数组名 = new 数组类型 [数组元素个数];
  
  简便形式:数据类型 [] 数组名 = {数组元素};
  

二.数组里面的元素的交换(最大值和最小值)

里面的数组元素交换的使用中间变量
public static void main(String[] args) {
        //定一个数组
        int [] nums = {5,52,24,78,35};
        System.out.println("最大值:"+getMax(nums));
        System.out.println("最小值:"+getMin(nums));
    }

    public static int getMax(int [] number) {
        //定义一个擂主
        int max = 0;
        //进行非空验证
        if (number != null && number.length>0) {
            max = number[0];
            //使用for循环进行比较
            for (int i=0;i<number.length;i++)
            if (number[i]>max) {
                max = number[i];
            }
        }
        return max;
    }
    public static int getMin(int [] number01) {
        int min = 10;
        if (number01 != null && number01.length>0) {
            min = number01[0];
            for (int i=0;i<number01.length;i++) {
                if (number01[i] < min) {
                    min = number01[i];
                }
            }
        }
        return min;
    }

注意:数组在进行在使用for循环的时候,需要进行非空验证

三.数组排序

public static void main(String[] args) {
        int [] arrays = {2,5,3,8,4};
        //把排好序的数组转换为字符串
        String str = Arrays.toString(sortArrys(arrays));
        System.out.println(str);
    }

    //冒泡排序

    /**
     *
     * @param nums 没有排序的数组
     * @return 排好序的数组
     */
    public static int [] sortArrys(int [] nums) {
        //第一个for循环控制比较的轮数
        for (int i=0;i<nums.length;i++){
            //第二个for循环控制每一轮的比较次数
            for (int j=0;j<nums.length-1-i;j++){
                if (nums[j] >nums[j+1]) {
                    //设置中间变量 进行两个值的交换
                    int temp = nums[j];
                    nums[j] = nums[j+1];
                    nums[j+1] = temp;
                }
            }
        }
        return nums;
    }

注意:使用两个循环

​ 第一个循环 控制轮数

​ 第二个循环 控制每一轮的比较次数

四.数组插入数据

//数组中插值
    public static void main(String[] args) {
        char [] ch = new char[6];
        ch[0] = 'a';
        ch[1] = 'b';
        ch[2] = 'c';
        ch[3] = 'e';
        ch[4] = 'f';

        //插入的值 char元素可以直接进行比较对应ascll码比较
        char number = 'd';
        //使用index来记录找到的索引
        int index = -1;
        //寻找插入值的索引的位置
        for (int i =0;i< ch.length;i++){
            if(ch[i] > number) {
                index = i;
                break;
            }
        }
        //进行值往后移动
        for (int j= ch.length-1;j>index;j--) {
            ch[j] = ch[j-1];
        }

        //进行值的插入
        ch[index] = number;

        //打印
        System.out.println(ch);
    }

注意:在比的时候,原来是数组长度是比后面加入的数组的长度小1的,

​ 如果是先定义两个数组,其中一个数组比原来的数组少一个,在生成新数组的时候,在加入值的地方注 意索引,还有在新数组的最后一个数组元素的变化需要菜系判断;例如:

 public static void main(String[] args) {
        //原字符顺序:a, b, c, e, f, p, u, z
        //待插入字符:m
        //插入字符的下标是:5
        //原数组
        char [] ch = {'a', 'b', 'c', 'e', 'f', 'p', 'u', 'z'};
        //插入的数组
        char [] chars = new char[9];

        //插入的数的信息
        char temp = 'm';
        int index = 5;
        for (int i=0;i<ch.length;i++){
            if (i == index) {

                chars[i]=temp;
            }else if (i<index){
                chars[i] = ch[i];
                //当第6个下标开始
            } else if (i<ch.length) {
                chars[i] = ch[i-1];
                //注意
            }if (i== ch.length-1) {
                chars[i+1] = ch[i];
            }
        }
        System.out.println(Arrays.toString(chars));
    }

在这里插入图片描述
五.JVM内存划分五块

栈:所有的局部变量  还有运行方法时候,都会在栈里面开辟空间
	特点:先进后出
堆:所有 new的资源 数组 对象 都是堆内存中存在(重点)
方法区:所有的字节码文件(class文件)静态资源  存在方法区
本地方法区:调用c或者是c++代码的native
程序计数器:主要是控制代码的执行

标签:ch,nums,int,day06,笔记,number,char,数组
来源: https://blog.csdn.net/weixin_46002359/article/details/122424829

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

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

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

ICode9版权所有