首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >比较两个数组列表并获取公共元素的位置

比较两个数组列表并获取公共元素的位置
EN

Stack Overflow用户
提问于 2012-03-07 20:12:05
回答 4查看 2.6K关注 0票数 2

我有两个数组列表,第二个是第一个的子集。我想知道在子集的元素的第一个数组列表中的初始和结束位置(在我的示例中,在arraylist中的位置为: uno,tre,tre)

如何修改此代码?

代码语言:javascript
运行
复制
import java.util.ArrayList;

public class ConfrontaArrayList {
public static void main(String[] args)
{
    ArrayList<String> arrayList = new ArrayList<String>();
    ArrayList<String> subSetArrayList = new ArrayList<String>();

    arrayList.add("inizio");
    arrayList.add("stringa");
    arrayList.add("uno");
    arrayList.add("due");
    arrayList.add("tre");
    arrayList.add("fine");
    arrayList.add("stringa");

    subSetArrayList.add("uno");
    subSetArrayList.add("due");
    subSetArrayList.add("tre");

    System.out.print("Elementi di arrayList: ");
    for (String stringa : arrayList) System.out.print(stringa + " ");
    System.out.print("\nElementi di subSetArrayList: ");
    for (String stringa : subSetArrayList) System.out.print(stringa + " ");
}
}  
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-07 20:18:58

java.util.Collections.indexOfSubList()方法将返回子列表的索引:

代码语言:javascript
运行
复制
int startIdx = Collections.indexOfSubList(arrayList, subSetArrayList);
if (-1 != startIdx)
{
    int endIdx = startIdx + subSetArrayList.size() - 1;
}
票数 2
EN

Stack Overflow用户

发布于 2012-03-07 20:25:14

如果你不能解决整个问题,就把它分解成更小的步骤,这样你就可以做到:

  1. 如何判断两个元素是否匹配?
  2. 给定1,如何判断两个等长列表是否匹配?
  3. 给定2,如何判断列表是否与较长列表中的给定索引处匹配?
  4. 给定3,如何回答您的问题?

<

  1. >G29
票数 1
EN

Stack Overflow用户

发布于 2012-03-07 20:17:32

当然,最简单的答案是遍历数组列表并执行String.equals()来查找索引。

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

https://stackoverflow.com/questions/9601291

复制
相关文章

相似问题

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