【问题标题】:search in part of array list - java在数组列表的一部分中搜索 - java
【发布时间】:2011-06-22 12:16:34
【问题描述】:

可以在arrayList中的位置5到10之间进行搜索吗?

怎么做?

在这种情况下,我需要在位置 1-5、5-10、...之间进行搜索,并且我想避免其他列表

编辑:我有类似的东西

if (pp.move(i).subList(5, 10).contains(pn50.getText())) {

但我对这段代码有问题,我需要调用如下方法:

if (pp.move(i).suit().subList(5, 10).contains(pn50.getText())) {

但我得到一个错误:方法 subList(int, int) 未定义为 String 类型 谢谢!!

【问题讨论】:

    标签: java list search arraylist


    【解决方案1】:

    您可以获得所需内容的子列表(这不是一项昂贵的操作),然后搜索整个列表。像这样:

    if (myList.subList(0, 5).contains(objectToFind)) {
       System.out.println("Found object between indexes 0 and 5");
    }
    

    更新:首先将您的西装字符串转换为列表,如果字符串以逗号分隔,那么您可以这样做:

    String[] suitArray = pp.move(i).suit().split(",");
    List myList = List list = Arrays.asList(suitArray);
    

    然后使用上面的第一个代码来检查它。现在,如果您只是在 String 中搜索某些内容,您可能可以通过不先转换为 List 来更有效地执行此操作,但这将是一个全新的问题。

    【讨论】:

    • 嗨,肯尼,感谢您的回复。请问一个问题。我需要更多的东西。你能看到我的帖子更新吗?
    • 我不明白您更新后的代码要做什么。 suit() 正在返回一个 String 对象,它不是一个 List 所以你绝对不能在它上面调用 subList() 。 suit() 返回的字符串是什么?
    • 红心、梅花等一串花色
    • 好的,我已经在上面包含了将您的字符串转换为列表的代码。
    • @All,你能发一个完整的例子吗?
    【解决方案2】:

    【讨论】:

      【解决方案3】:

      你可以拿一个子列表吗?

      ArrayList.subList(fromIndex, toIndex);
      

      这样你就有了你的项目的子集,操纵它们,但仍然没有“新”列表(修改子列表将修改原始列表)

      【讨论】:

        【解决方案4】:

        但我得到一个错误:方法 subList(int, int) 未定义 String 类型谢谢!!

        那一定是因为您的 suit() 方法被声明为返回 String

        【讨论】:

        猜你喜欢
        • 2018-10-04
        • 1970-01-01
        • 2013-02-14
        • 2012-03-03
        • 1970-01-01
        • 2010-09-23
        • 2012-10-17
        • 2011-12-02
        • 2012-03-18
        相关资源
        最近更新 更多