Java返回数组如何返回?Java入门教程

TheDisguiser 2020-04-19 20:01:44 java常见问答 6441

数组一直是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一些知识问答的更多内容,请持续关注本网站了解吧。