gpt4 book ai didi

java - 将一个数组列表链接到另一个数组列表

转载 作者:行者123 更新时间:2023-12-02 00:03:49 24 4
gpt4 key购买 nike

我本质上需要知道是否可以将 1 个 arrayList 更改为另一个 arrayList,然后对 arrayList 1 中的哪个项目与 arrayList 2 中的项目来自哪个项目进行关联,而无需使用模式查找器。很难解释,所以用一个简单的例子来说明:

给定文件输入:

Feline:
Cat Lion
Cheetah

Canine:
Dog
Wolves Fox

我使用以下方法将文件分成每个段落:

String strLine;
String [] paragraph = strLine.split("");

从这里,我使用高级 for 循环内的 add 方法将每个项目添加到 arrayList 中。

这应该给我们留下第一个 arrayList:

[Feline: Cat Lion Cheetah, Canine: Dog Wolves Fox]

从那里需要使用正则表达式\\s+ 将每个项目拆分为单独的单词。使用另一个高级 for 循环应该很容易做到这一点。

这应该给我们留下第二个 arrayList:

[Feline:, Cat, Lion, Cheetah, Canine:, Dog, Wolves, Fox]

我需要知道的是,是否有办法让程序意识到第二个 arrayList 中的单词 Cheetah 源自第一个 arrayList 中的第一个项目,而不必在第一个 arraylist 中搜索第二个 arrayList 中的项目数组列表。要点必须是一个 arrayList 中的一项源自另一个 arrayList。

我本质上需要这样做,因为我有一些方法,根据每个段落的第一个单词是什么,对每个段落执行不同的操作。

如果我的解释令人困惑,请告诉我,对糟糕的术语表示抱歉,我无法解释我的问题。

如果可能,请告诉我如何解决我的问题。

问候

最佳答案

我建议在根据空格字符进行分割时保留初始数组列表位置。举例来说,您定义一个对象如下;

public class MyWord
{
private int pos;

private String word;
public MyWord(int pos,String word)
{
this.pos = pos;

this.word = word;
}
//getters and setters
}

那么当你 split 的时候,你可以做这样的事情;

List<MyWord>secondList = new ArrayList<MyWord>();
for(int i=0;i<firstList.size();i++)
{
String[]words = firstList.get(i).split("\\s");
for(String wordToAdd : words)
{
MyWord w = new MyWord(i,wordToAdd);
secondList.add(w);
}
}

现在您的第二个列表将有一个包含该单词的对象以及它在第一个列表中包含的原始索引。

希望这有帮助。

关于java - 将一个数组列表链接到另一个数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14304775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com