解决二维数组转为ArrayList集合问题

2015年4月9日 天气冷

起初我参考的代码如下:

修改前代码块

    String[][] str = { { "语文", "100" }, { "英语", "90" }, { "数学", "90" }, };
    ArrayList<String> list = new ArrayList<String>();
    for (int i = 0; i < str.length; i++) {
        for (int j = 0; j < str[i].length; j++) {
            list.add(str[i][j]);
        }
    }
    System.out.println(list);
控制台输出结果: ”[语文, 100,英语, 90,数学, 90]”

这很明显是没有得到想要的结果的,预期的需求是一个科目及分数为一个实体对象。于是我将代码修改如下:

修改后代码块

String[][] str = { { "语文", "100" }, { "英语", "90" }, { "数学", "90" }, };
        ArrayList<String> list = new ArrayList<String>();
        ArrayList<ArrayList<String>> list2 = new ArrayList<ArrayList<String>>();
        for (int i = 0; i < str.length; i++) {
            list = new ArrayList<String>();
            for (int j = 0; j < str[i].length; j++) {
                list.add(str[i][j]);
            }
            list2.add(list);
        }
        Iterator it = list2.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }
控制台输出的结果为:

[语文, 100]

[英语, 90]

[数学, 90]

于是就得到我想要的结果了。

注意:(ps:在做测试的时候,如果项目属于大型类的,最好能自己写一个单元测试类,这样节省的时间会比较多一点,学习的效率也会高一些)

时间: 2024-11-05 20:25:14

解决二维数组转为ArrayList集合问题的相关文章

将二维数组转为一维数组的2种方法

如何将下面的二维数组转为一维数组. 代码如下: $msg = array( array( 'id'=>'45', 'name'=>'jack' ), array( 'id'=>'34', 'name'=>'mary' ), array( 'id'=>'78', 'name'=>'lili' ), ); 第一种方法: 代码如下: foreach($msg as $k => $v){ $ids[] = $id; $names[] = $name; } 第二种方法: 代

将二维数组转为稀疏数组

public class SparseArray { /** * 用二维数组实现一个棋盘,1代表黑子,2代表蓝子 */ public static void main(String[] args) { /** * 二维数组 */ int[][] chessArray1 = new int[11][11]; chessArray1[1][2] = 1; chessArray1[2][3] = 2; for (int[] row : chessArray1) { for (int data : ro

php函数array_column如何将二维数组转为一维数组

/*** * 参数1二维数组,参数2 返回一维数组的值的键值 参数3 用参数3作为返回一维数组的键值 */ $last_names = array_column($records, 'last_name', 'first_name'); print_r($last_names);

解决二维数组矩阵闭环数字的替换

如下,存在矩阵形如: 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 9 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0

UVA 1601 The Morning after Halloween(搜索,二维数组转为图)

学习: 转化成图 1 //#include<bits/stdc++.h> 2 #include<cstdio> 3 #include<cstring> 4 #include<iostream> 5 using namespace std; 6 typedef long long ll; 7 int n,m,k; 8 char maps[20][20]; 9 int vis[200][200][200]; 10 int num[20][20]; 11 int

二维数组、集合示例及练习

二位数组的创建.赋值.提取示例: 二维数组练习:语文数学外语共三门课的成绩,共九个人,输入到一个二维数组中 定义集合并添加数据示例: 移除数据示例: 移除数据索引为某数的示例: 计算数据中共有几组数据示例: 集合的练习: 练习一:输入人数,录入分数,存到集合里面,之后再读取出来,求平均分 练习二:输入人数,输入每一个人的分数,求平均分,并排序,升序 练习三:输入人数,输入每一个人的分数,求平均分,排列为降序 集合的语句示例: 示例一:清空集合中所有数据 示例二:查看集合中第一个为12的数据的索引

C++基础知识——二维数组做函数参数

1.确定大小的二维数组 void Func(int array[3][10]); void Func(int array[][10]); 2.不确定大小的二维数组转为二维指针: 从实参传递来的是数组的起始地址,在内存中按数组排列规则存放(按行存放),而并不区分行和列,所以可以转换成二维指针. void Func(int **array, int m, int n); 调用时候要把数组名转换位二维指针 Func((int**)a, 3, 3); 获取具体数组元素 *((int*)array + n

c语言中如何通过二级指针来操作二维数组

通过二级指针去访问二维数组需要先给二级指针分配等同于二维数组行数的一维数组指针,然后把二维数组的每行首地址赋值给对应位置的一维指针上.之后就可以通过二维指针直接访问了. 参考代码如下,可以看具体注释辅助理解. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #include <stdio.h>//输入输出头文件. #include <stdlib.h>//本程序需要用到malloc/free函数,引

二维数组的查找——剑指offer第一题

题目描述: 在一个二维数组中(每个一维数组的长度相同), 每一行都按照从左到右递增的顺序排序, 每一列都按照从上到下递增的顺序排序. 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 设计思路: 遍历所有行 遍历行中的每个元素 判断元素值是否与给定的target值相等 相等返回True 判断元素是否大于给定target值(比target值大的话跳出循环) 遍历完没有返回false 代码: 1 import numpy as np 2 class Solution: 3