zoukankan      html  css  js  c++  java
  • 数组

    数组的定义方式:

    1.    int[] x = new int[3];
    2.    int[] arr = new int[] {2,3,6,7,1};
    或者 int[]arr = {2,3,6,7,1};        堆内存会开辟空间
    --------------------------------------------------------------------------------
    java五块内存区域
    --------------------------------------------------------------------------------
    栈内存
    ----------------------------------------------
    堆内存
    new出来的实体都放在堆里面
    堆内存每一个实体都有一个内存地址值,因此,栈内存只是引用地址值指向该数据
    堆内存中的实体如果不赋值,都有默认的值
    当x=null时
    栈中的x就不指向堆内存了,java会启动垃圾回收机制,将堆内存的开辟的空间清除(不一定马上清除)
    堆内存的三个特点:
    内存地址值
    默认初始化值
    内存回收机制
    ----------------------------------------------------------------------------------
    打印数组
    注:直接输数组名,将打印数组的地址
    要打印数组的元素,通过遍历
    ----------------------------------------------------------------------------------
    数组类型的参数 (int[] arr)
    ----------------------------------------------------------------------------------
    数组的排序
     
    方法一:选择排序
    内循环遍历一次,最值出现在头角标的位置上
    以arr[0]为基础,把arr[0]和arr[1],arr[2],arr[3]....作比较,比完后,arr[0]即为最值;
    然后以arr[1]为基础,把arr[1]和arr[2],3.....比较
    每比完一遍。都会得到数字中得最大值或最小值
     
    方法二:冒泡排序
    相邻两个元素比较,大的往后排,比完一遍后,最大值排在了最后面;
    然后最后面的那个最大值不用参与比较了,开始第二遍循环
    注:面试常问到排序,冒泡,选择.....插入排序,快速排序,希尔排序。。
     
    java自带排序(数组)
    import java.util.*;
    Arrays.sort(arr);
     
    ---------------------------------------------------------------------
    数组查找:
    1.折半查找:
    前提,数组必须是有序数组
     
    --------------------------------------------------------------------------------------------------
    二维数组:
    int [] [] arr = new int [3] [4];
    int [] [] arr2 =new int [3] [ ];此时arr2[1] [0]的值为空,因为二维数组里的一维数组未被初始化,默认为null
     
    赋值后,栈内存中并没有在一维数组后开辟空间,而是新建空间,将地址赋给一维数组
    -----------------------------------------------------------------------------
    定义方式二:
    int [] [] arr = { {2, 3, 1, 5}, {9, 4, 2, 6}, {5, 3, 2, 7} };
     
    二维数组 所有元素的和
    -------------------------------------------------------
    int[] x, y[];  以此种方式定义的数组,x是一维数组,y是二维数组。(...不推荐)
     
     
     
     
     
  • 相关阅读:
    杰出人才项目管理的设计与实现
    企业人事信息管理系统开发与设计
    高等职业院校人事薪资管理系统的开发与实现
    基于UML的高校组织人事档案管理系统建模研究
    基于UML技术的电子商务系统设计
    人事管理系统的设计与实现
    文献随便目录4
    Qt 设置button互斥,一组button只能选中一个
    C++ 子类重写父类函数,子类调用重写函数,执行父类的函数还是子类的函数?
    QLabel 设置背景图片的方法和解决图片太大不能完显示的办法
  • 原文地址:https://www.cnblogs.com/aisi-liu/p/4131834.html
Copyright © 2011-2022 走看看