精华内容
下载资源
问答
  • 二维数组的结构决定了其能非常方便地表示计算机的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的列。下面简单了解一下二维数组,包括数组的声明和初始化。 创建二维数组 在 Java 中二维数组被看作...

    为了方便组织各种信息,计算机常将信息以表的形式进行组织,然后再以行和列的形式呈现出来。二维数组的结构决定了其能非常方便地表示计算机中的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的列。下面简单了解一下二维数组,包括数组的声明和初始化。

    创建二维数组

    Java 中二维数组被看作数组的数组,即二维数组为一个特殊的一维数组,其每个元素又是一个一维数组。Java 并不直接支持二维数组,但是允许定义数组元素是一维数组的一维数组,以达到同样的效果。声明二维数组的语法如下:

    type array[][];
    type[][] array;

    其中,type 表示二维数组的类型,array 表示数组名称,第一个中括号表示行,第二个中括号表示列。

    下面分别声明 int 类型和 char 类型的数组,代码如下:

     
    1. int[][] age;
    2. char[][] sex;

    初始化二维数组

    二维数组可以初始化,和一维数组一样,可以通过3种方式来指定元素的初始值。这 3 种方式的语法如下:

    array=new type[][]{值 1,值 2,值 3,…,值 n};
    array=new type[][]{new 构造方法(参数列),…};
    type[][] array={{第1行第1列的值,第1行第2列的值,…},{第2行第1列的值,第2行第2列的值,…},…};

    例 1

    使用第一种方式声明 int 类型的二维数组,然后初始化该二维数组。代码如下:

     
    1. int[][] temp;
    2. temp=new int[][]
    3. {
    4. {1,2},{3,4}
    5. };


    上述代码创建了一个二行二列的二维数组 temp,并对数组中的元素进行了初始化。图 1 所示为该数组的内存结构。
     


    图1 二维数组内存结构


    使用第二种方式声明 int 类型的二维数组,然后初始化该二维数组。代码如下:

     
    1. int[][] temp;
    2. temp=new int [][]
    3. {
    4. {new int(1),new int(2)},{new int(3),new int(4)}
    5. };


    使用第三种方式声明 int 类型的二维数组,并且初始化数组。代码如下:

     
    1. int[][] temp={{1,2},{3,4}};

    获取单个元素

    在上节使用 3 种方式创建并初始化了一个二行二列的 int 类型数组 temp。当需要获取二维数组中元素的值时,也可以使用下标来表示。语法如下:

    array[i-1][j-1];


    其中,array 表示数组名称,i 表示数组的行数,j 表示数组的列数。例如,要获取第二行第二列元素的值,应该使用 temp[1][1]来表示。这是由于数组的下标起始值为 0,因此行和列的下标需要减 1。

    例 2

    通过下标获取 class_score 数组中第二行第二列元素的值与第四行第一列元素的值。代码如下:

     
    1. public static void main(String[] args)
    2. {
    3. double[][] class_score={{10.0,99,99},{100,98,97},{100,100,99.5},{99.5,99,98.5}};
    4. System.out.println("第二行第二列元素的值:"+class_score[1][1]);
    5. System.out.println("第四行第一列元素的值:"+class_score[3][0]);
    6. }


    执行上述代码,输出结果如下:

    第二行第二列元素的值:98.0
    第四行第一列元素的值:99.5

    获取全部元素

    在一维数组中直接使用数组的 length 属性获取数组元素的个数。而在二维数组中,直接使用 length 属性获取的是数组的行数,在指定的索引后加上 length(如 array[0].length)表示的是该行拥有多少个元素,即列数。

    如果要获取二维数组中的全部元素,最简单、最常用的办法就是使用 for 语句。

    例 3

    使用 for 循环语句遍历 double 类型的 class_score 数组的元素,并输出每一行每一列元素的值。代码如下:

     
    1. public static void main(String[] args)
    2. {
    3. double[][] class_score={{100,99,99},{100,98,97},{100,100,99.5},{99.5,99,98.5 }};
    4. for(int i=0;i<class_score.length;i++)
    5. { //遍历行
    6. for(int j=0;j<class_score[i].length;j++)
    7. {
    8. System.out.println("class_score["+i+"]["+j+"]="+class_score[i][j]);
    9. }
    10. }
    11. }


    上述代码使用嵌套 for 循环语句输出二维数组。在输出二维数组时,第一个 for 循环语句表示以行进行循环,第二个 for 循环语句表示以列进行循环,这样就实现了获取二维数组中每个元素的值的功能。

    执行上述代码,输出结果如下所示。

    class_score[0][0]=100.0
    class_score[0][1]=99.0
    class_score[0][2]=99.0
    class_score[1][0]=100.0
    class_score[1][1]=98.0
    class_score[1][2]=97.0
    class_score[2][0]=100.0
    class_score[2][1]=100.0
    class_score[2][2]=99.5
    class_score[3][0]=99.5
    class_score[3][1]=99.0
    class_score[3][2]=98.5

    例 4

    假设有一个矩阵为 5 行 5 列,该矩阵是由程序随机产生的 10 以内数字排列而成。下面使用二维数组来创建该矩阵,代码如下:

     
    1. public class Test11
    2. {
    3. public static void main(String[] args)
    4. {
    5. //创建一个二维矩阵
    6. int[][] matrix=new int[5][5];
    7. //随机分配值
    8. for(int i=0;i<matrix.length;i++)
    9. {
    10. for(int j=0;j<matrix[i].length;j++)
    11. {
    12. matrix[i][j]=(int)(Math.random()*10);
    13. }
    14. }
    15. System.out.println("下面是程序生成的矩阵\n");
    16. //遍历二维矩阵并输出
    17. for(int k=0;k<matrix.length;k++)
    18. {
    19. for(int g=0;g<matrix[k].length;g++)
    20. {
    21. System.out.print(matrix[k][g]+"");
    22. }
    23. System.out.println();
    24. }
    25. }
    26. }


    在该程序中,首先定义了一个二维数组,然后使用两个嵌套的 for 循环向二维数组中的每个元素赋值。其中,Math.random() 方法返回的是一个 double 类型的数值,数值为 0.6、0.9 等,因此乘以 10 之后为 10 以内的整数。最后又使用了两个嵌套的 for 循环遍历二维数组,输出二维数组中的值,从而产生矩阵。

    运行该程序的结果如下所示。

    34565
    96033
    48741
    10583
    63985

    获取整行元素

    除了获取单个元素和全部元素之外,还可以单独获取二维数组的某一行中所有元素的值,或者二维数组中某一列元素的值。获取指定行的元素时,需要将行数固定,然后只遍历该行中的全部列即可。

    例 5

    编写一个案例,接收用户在控制台输入的行数,然后获取该行中所有元素的值。代码如下:

     
    1. public static void main(String[] args)
    2. {
    3. double[][] class_score={{100,99,99},{100,98,97},{100,100,99.5},{99.5,99,98.5}};
    4. Scanner scan=new Scanner(System.in);
    5. System.out.println("当前数组只有"+class_score.length+"行,您想查看第几行的元素?请输入:");
    6. int number=scan.nextInt();
    7. for(int j=0;j<class_score[number-1].length;j++)
    8. {
    9. System.out.println("第"+number+"行的第["+j+"]个元素的值是:"+class_score[number-1][j]);
    10. }
    11. }


    执行上述代码进行测试,输出结果如下所示。

    当前数组只有4行,您想查看第几行的元素?请输入:
    3
    第3行的第[0]个元素的值是:100.0
    第3行的第[1]个元素的值是:100.0
    第3行的第[2]个元素的值是:99.5

    获取整列元素

    获取指定列的元素与获取指定行的元素相似,保持列不变,遍历每一行的该列即可。

    例 6

    编写一个案例,接收用户在控制台中输入的列数,然后获取二维数组中所有行中该列的值。代码如下:

     
    1. public static void main(String[] args)
    2. {
    3. double[][] class_score={{100,99,99},{100,98,97},{100,100,99.5},{99.5,99,98.5}};
    4. Scanner scan=new Scanner(System.in);
    5. System.out.println("您要获取哪一列的值?请输入:");
    6. int number=scan.nextInt();
    7. for(int i=0;i<class_score.length;i++)
    8. {
    9. System.out.println("第 "+(i+1)+" 行的第["+number+"]个元素的值是"+class_score[i][number]);
    10. }
    11. }


    执行上述代码进行测试,如下所示。

    您要获取哪一列的值?请输入:
    2
    第 1 行的第[2]个元素的值是99.0
    第 2 行的第[2]个元素的值是97.0
    第 3 行的第[2]个元素的值是99.5
    第 4 行的第[2]个元素的值是98.5
    展开全文
  • PHP还是比较常用的,于是我研究了一下PHP二维数组,下面通过本文给大家介绍PHP获取二维数组中某一列的集合,对php数组二维数组相关知识感兴趣的朋友一起学习吧
  • 主要介绍了php实现给二维数组中所有一维数组添加的方法,涉及php针对数组的遍历、转换、赋值等相关操作技巧,需要的朋友可以参考下
  • PHP 获取二维数组中某个key的集合
  • 从数据库获取多个数据时往往是二维数组,但是有时候...示例数组,获取二维数组里面的device_token的并且放在一维数组里面: $arr = array( 0 => array( 'device_token' => 'AnBWyVMD1u0qKkNrD44h8BaFjRO...

    从数据库获取多个数据时往往是二维数组,但是有时候我们需要获取数组里面的某一键的数据。有两种方法:foreach()循环和Array()函数

    示例数组,获取二维数组里面的device_token的值并且放在一维数组里面:

    $arr = array(
    0 => array(
    'device_token' => 'AnBWyVMD1u0qKkNrD44h8BaFjROX5qCRgDjEG6CCFtFd',
    'shebei' => 'android'
    ),
    1 => array(
    'device_token' => 'Ap0pTms6pvxMtsvrqCvzbqknLkO6KEIJnk3x9iGYlgd8',
    'shebei' => 'android'
    ),
    2 => array(
    'device_token' => '6aa7d1356e75a56758a0fdc40b776d0cab7fa8889de546106888d3b3c5eee872',
    'shebei' => 'ios'
    ),
    3 => array(
    'device_token' => '9e9854b6b6f02c58aa8838619b25e18139558dca9f69e2abbc6f9b88630ff269',
    'shebei' => 'ios'
    ),
    4 => array(
    'device_token' => 'ApKqVYFWWXNds9CnveE24ysTZ942nw5P2o5lE6KJegqg',
    'shebei' => 'android'
    ),
    5 => array(
    'device_token' => '',
    'shebei' => 'ios'
    ),
      6 => array(
        'device_token' => 0,
        'shebei' => 'android'
      )
    );

    一、foreach()循环
    $IOS_token = array();
    $android_token = array();
    if(!empty($arr) && count($res) != 0){
    foreach($arr as $key => $val){
    if($val['shebei'] == 'android'){
    $android_token[] = $val['device_token'];
    }elseif($val['shebei'] == 'ios'){
    $IOS_token[] = $val['device_token'];
    }
    }
    }

    二、Array()函数
    $ios_res = array_column(array_filter($arr,function($val){
    if($val['shebei'] == 'ios'){
    return $val['device_token'];
    }else{
    return false;
    }
    }),'device_token');
    $android_res = array_column(array_filter($arr,function($value){
    if($value['shebei'] == 'android'){
    return $value['device_token'];
    }else{
    return false;
    }
    }),'device_token');

    返回结果一维数组:
    Array
    (
        [ios] => Array
            (
                [0] => 6aa7d1356e75a56758a0fdc40b776d0cab7fa8889de546106888d3b3c5eee872
                [1] => 9e9854b6b6f02c58aa8838619b25e18139558dca9f69e2abbc6f9b88630ff269
            )
    
        [android] => Array
            (
                [0] => AnBWyVMD1u0qKkNrD44h8BaFjROX5qCRgDjEG6CCFtFd
                [1] => Ap0pTms6pvxMtsvrqCvzbqknLkO6KEIJnk3x9iGYlgd8
                [2] => ApKqVYFWWXNds9CnveE24ysTZ942nw5P2o5lE6KJegqg
            )
    
    )

    原始数组$arr中ios其实有三个,但是有一个是空值,所以array_filter()函数给过滤掉了;android分类下的0也被过滤掉了。

    注意点:array_filter会过滤掉任何等于FALSE的值,也就是说  0值,空字符串,null,都会被过滤
     

    转载于:https://www.cnblogs.com/lfjblog/p/10572653.html

    展开全文
  • 获取二维数组中

    2019-02-17 15:08:00
    $minPrice = array_get($productMinAndMaxPriceMap, $product['id'] . '.minPrice', 0); 转载于:https://www.cnblogs.com/cjjjj/p/10391224.html
                $minPrice = array_get($productMinAndMaxPriceMap, $product['id'] . '.minPrice', 0);

     

    转载于:https://www.cnblogs.com/cjjjj/p/10391224.html

    展开全文
  • 获取二维数组某个的上一级key

    万次阅读 2020-06-08 13:54:52
    public function getArrayKey($params = array()){ $options = array( 'array' => [], 'values' => 0, 'keys' =>'' ); if(is_array($params) && !empty($params)) {
    public function getArrayKey($params = array()){
            $options        = array(
                'array'     => [],
                'values'     => 0,
                'keys'       =>''
            );
            if(is_array($params) && !empty($params)) {
                $options    = array_merge($options, $params);
            }
            extract($options);
            foreach ($array as $key=>$value){
                if($value[$keys]==$values){
                    return $key;
                }
            }
            return false;
        }
    
    展开全文
  • 判断一维数组是否存在二维数组里 不存在就push到二维数组中形成二维数组,存在则不用管
  • * @desc 获取二维数组某个键的最大或最小值 * * @param array $arr * @param string $keys * @param array $data */ public function phpMaxMin($arr = [],$keys = ''){ $max['key'] = ''; $max['value']...
  • php获取二维数组中key键值的例子

    万次阅读 2018-01-12 14:42:10
    php获取二维数组中key键值的例子 - 摘要: 本文讲的是php获取二维数组中key键值的例子, 在处理php数组的时候,有一种需求特别的频繁,如下二维数组: $arr = array( 1=>array( 'id' => 5, 'name' => '张三...
  • js_获取二维数组中某列的最大

    千次阅读 2020-05-26 15:05:07
    https://stackoverflow.com/questions/23396945/getting-the-min-and-max-value-in-javascript-but-from-a-2d-array <!... <... <head>...js_获取二维数组中某列的最大</title> </hea
  • 主要介绍了PHP删除二维数组中相同元素及数组重复的方法,涉及php针对数组的遍历、判断、比较等相关操作技巧,需要的朋友可以参考下
  • C#窗体二维数组求最大最小值
  • js获取二维数组的最大,最小值

    千次阅读 2018-12-12 14:35:18
    //获取二维数组中的最大,最小值 var maxSchedule=10; var minSchedule=0; var arr = Array(); if(scheduleData!=""&amp;&amp;scheduleData.length==0&amp;&amp;scheduleData!=...
  • //根据条件 查出来的二维数组 $ymtbsh = $ymtbsh_model->where(['tbid' => $id])->order("step asc")->select(); //我要获取$ymtbshstep的最大和最小值 $max['key'] = ''...
  • 主要介绍了Python简单获取二维数组行列数的方法,结合实例形式分析了Python基于numpy模块的二维数组相关运算技巧,需要的朋友可以参考下
  • php获取二维数组中的某个

    千次阅读 2019-04-08 10:52:49
    <?...$arr =array( array('field_name'=>'1','field_id'=>'d9','create_time'=>1489734050), array('field_name'=>'2','field_id'=>'d10','create_time'=>1489734050), array('field_name'...
  • 【Java】获取二维数组每列最小的

    千次阅读 2019-06-20 22:49:15
    从键盘输入二维数组输出每列最小的。 分析: 思路:遍历列,再遍历列中行 分好列数 定义一个一位数组,用于输出得到的列的最小值 分列进行比较,循环查找,得到的数保存到以为数组。 代码实现: import...
  • 二维数组也是一个一维数组,每个元素都是一个一维数组。初学数组,我认为画图最能帮助我理解,一看就明白,之后再向怎么去写程序,在一步一步调试程序,直到完成。
  • 本文通过三种解决方案给大家介绍js二维数组中最大的方法。介绍的非常详细,具有参考价值
  • JAVA获取二维数组中每一列的最小值

    千次阅读 2019-09-24 23:32:22
    分列,列数=二维数组中长度最长的一维数组的长度 循环嵌套,进行行列转换 依次获取最小值 public static void main(String[] args) throws Exception { int[][] array = { { 1, 2 }, { 3, 4 }, { 5, 6 }...
  • PHP获取二维数组中指定Key的重复Value

    千次阅读 2018-05-13 14:59:31
    * 判断二维数组中指定Key是否存在重复Value * @param array $arrInput 二维数组 * @param string $strKey 键名 * @return bool */ function hasRepeatedValues($arrInput, $strKey) { //参数校验 if (!is_...
  • 二维数组最大查询 有⼀个3⾏4列的⼆维数组,要求编程找出最⼤元素,并输出所在的⾏和列。 其实很简单,就是两两比较保存角标就行。 直接上代码: //首先定义一个3⾏4列的二维数组并初始化 int[,] testArr01...
  • 主要给大家介绍了利用Javascript计算二维数组重复的方法,文中给出了详细的示例代码,相信对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
  • 去除二维数组的重复项 /** * 去除二维数组的重复项 * @param $arr 数组 * @param $key 按照哪个键值 * @return array */ public function array_unset_tt($arr, $key){ $res = array(); foreach...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 306,720
精华内容 122,688
关键字:

如何获取二维数组中的值