数组一直是Java中不可缺少的技术之一,很多容量大的项目都需要数组的支持。最近碰到很多小伙伴问我Java关于如何返回数组的问题,下面小编就来你们来了解一下到底Java中该如何返回数组。
首先来说说什么是数组吧,数组从本质上讲,和顺序表、链表、栈和队列一样,都是用来存储具有 "一对一" 逻辑关系数据的线性存储结构。只是因为各编程语言都默认将数组作为基本数据类型,使一些新手对数组有了 "只是基本数据类型,不是存储结构" 的误解。
数组与其他线性存储结构不同,顺序表、链表、栈和队列存储的都是不可再分的数据元素,数组既可以用来存储不可再分的数据元素,也可以用来存储像顺序表、链表这样的数据结构。
根据数组中存储数据之间逻辑结构的不同,数组可细分为一维数组、二维数组、...、n 维数组:
一维数组:存储不可再分数据元素的数组
二维数组:存储一维数组的一维数组
n 维数组:存储 n-1 维数组的一维数组;
无论数组的维数是多少,数组中的数据类型都必须一致。一维数组结构是线性表的基本表现形式,而 n 维数组可理解为是对线性存储结构的一种扩展。
那么如何以数组形式返回结果呢?请看下例:
/** * 查询结果以数组形式返回 * * @param sql 查询的sql语句 * @return */ public String[][] query(String sql) { ConnectionPool pool = ConnectionPool.getInstance(); // 连接池 ResultSet rs = null; String[][] result = null; Connection conn = pool.getConnection(); try { rs = conn.createStatement() .executeQuery(sql); ResultSetMetaData metadata = rs.getMetaData(); int columnCount = metadata.getColumnCount(); rs.last(); //移到最后一行 int length = rs.getRow(); //得到当前行号,也就是记录数 rs.beforeFirst(); //还要 result = new String[length][columnCount]; int index = 0; while (rs.next()) { for (int i = 0; i < columnCount; i++) { result[index][i] = rs.getString(i + 1); } index++; } } catch (SQLException e) { e.printStackTrace(); } finally { closeRs(rs); pool.release(conn); } return result; }
以上就是本篇文章的所有内容了,有关Java一些知识问答的更多内容,请持续关注本网站了解吧。