首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >列表数组还是其他可能性?

列表数组还是其他可能性?
EN

Stack Overflow用户
提问于 2012-07-29 20:42:29
回答 3查看 290关注 0票数 0

因此,我的问题首先是,是否有可能在Java中创建一系列链接列表?

了解我为什么要问这个问题。我正在做一个项目,在这个项目中,我们得到了一个方阵文件。我们必须找到矩阵的行列式,但它们必须存储在一个链式结构中。我们以前使用数组做过同样的事情,所以我可以从数组中重用相当多的源代码。下面是我想要做的事情(主要是基于我以前的项目):

  1. 以字符串形式读取文件的每一行。
  2. 计算矩阵的数量并确定每个矩阵的开始和结束位置。
  3. *将每个矩阵的每个元素读入多链接ListNode (我将为这些元素编写类)。
  4. *对每个矩阵重复
  5. 处理每一个的行列式。

因此,这两个明星的步骤是那些我有一个困难的时间弄清楚。我想一次读取所有的矩阵,这样我就不会忘记我在文件中的位置,就像我在一个矩阵中读取行列式一样,然后返回到文件中得到另一个矩阵。但是,我不知道如何存储每个链表表示,这样我就可以迭代地处理每个链表。我唯一的想法是将每个矩阵读入链表结构中,并在可能的情况下将每个链表结构存储在数组中。如果不可能,什么是可能的替代办法?

EN

回答 3

Stack Overflow用户

发布于 2012-07-29 20:45:53

存储LinkedLists数组是完全可能的;数组可以应用于对象以及原始类型。然而,我建议创建一个矩阵类,因为方阵不是链表;它们有两个维度的数据,而不仅仅是一个。至少,您可以使用一个二维的浮点数数组来表示一个矩阵,并存储一个双倍的LinkedList。表示越接近实际对象,对您来说就越容易。

票数 1
EN

Stack Overflow用户

发布于 2012-07-29 21:13:28

如果允许您使用java已经拥有的标准LinkedList类,这里是读取和存储矩阵的可能实现:

代码语言:javascript
运行
复制
int size = 10; //width and height of your matrix. 

LinkedList<LinkedList<Integer>> matrix = new LinkedList<LinkedList<Integer>>();

for (int i = 0; i<size; i++)
{
    LinkedList<Integer> list = new LinkedList<Integer>();
    for (int j = 0; j < size; j++)
    {
        //read the actual item
    }
    matrix.add(list);
}

为了读取矩阵(可能是数字),我建议使用名为Scanner的类。您可以创建一个新的扫描器,什么将能够读取您的文件,按数字:

代码语言:javascript
运行
复制
Scanner sc = new Scanner(new File("input.txt"));

您可以使用它读取整数值,而不需要像这样进行任何转换:

代码语言:javascript
运行
复制
int x = sc.nextInt();
票数 0
EN

Stack Overflow用户

发布于 2012-07-29 22:08:11

您可以通过声明LinkedList[]在Java中创建一个链接列表数组,但如果这样做,您的性能将受到严重影响。再看一下矩阵乘法,就可以说明原因。

如果A和B是A列计数等于B行计数的矩阵,则A* Br,c是A中r行和B列c的点积,这意味着我们必须从矩阵中提取行和列。

如果我们从列表(任何类型)形成矩阵,我们可以按行存储它们(即第0列表表示行0),或者按列存储(第0列表表示列0)。

现在我们遇到了一个问题。在链接列表中,方法get(n)从列表的开头开始,并找到下一个成员n次--这使得它按n次顺序运行。由链接列表构建的矩阵要么提取列的速度非常慢(如果按行方向存储),要么很慢地提取行(如果按列方向存储)。

我建议通过使用数组来保持简单。您可以使用

int值=新的intn;

当然,必须定义'n‘值。

希望这能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11712778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档