当前位置: 首页 > 知识库问答 >
问题:

使用字符串键实现自定义对象的Java二进制搜索

太叔天宇
2023-03-14

我有课

class User{
   String territory;
   String company;
   String name;
}

共有1个答案

葛桐
2023-03-14

您所需要的就是为User类实现可比接口。然后可以使用collections.binarysearch()方法(当然,只有在列表已排序的情况下)。

这样的事情对你来说很管用:

    public static void main(String[] args) {
        List <User> list = new ArrayList<>();
        list.add(new User("A1", "B1", "Name1"));
        list.add(new User("A2", "B2", "Name2"));
        list.add(new User("A3", "B3", "Name3"));
        list.add(new User("A4", "B4", "Name4"));
        list.add(new User("A5", "B5", "Name5"));

        System.out.println(list.get(Collections.binarySearch(list, new User("A4", "B4", "Name4"))));
    }


    static class User implements Comparable <User>{
        String territory;
        String company;
        String name;

        public User(String territory, String company, String name) {
            this.territory = territory;
            this.company = company;
            this.name = name;
        }

        @Override
        public int compareTo(User o) {
            return (territory+company).compareTo(o.territory+o.company);
        }

        @Override
        public String toString(){
            return territory + "," + company + "," + name;
        }
    }
 类似资料:
  • 问题内容: 我有一个带有自定义对象的ArrayList。我想在此ArrayList中搜索字符串。 对象的类如下所示: 我知道如何在ArrayList中搜索字符串,但是如何使用自定义对象在ArrayList中搜索字符串: 所以我想有一个函数在我的ArrayList中搜索,例如用五个对象搜索所有“名称”字符串。 问题答案: 最简单的方法是在一个地方验证自定义对象的属性是否具有所需的字符串 我认为这对您

  • 问题内容: 有什么方法可以在具有对象的ArrayList中实现二进制搜索?在此示例中,ArrayList将使用字段“ id”进行排序。 如果我应该使用二进制搜索返回具有指定ID的用户,“ User getUserById(ArrayList users,int userid)”将如何?这有可能吗? 问题答案: Java教程的对象排序文章中有一个示例,您可以编写自己的示例以对自定义类型进行比较。 然

  • 我有一个带有自定义对象的ArrayList。我想在这个ArrayList中搜索字符串。 因此,我希望有一个函数在我的ArrayList中搜索所有的“name”字符串,例如5个对象。

  • 问题内容: 我在将这两种算法结合在一起时遇到麻烦。我被要求修改以返回将元素插入数组的索引。然后有人要求我实现一个使用my 对随机生成的数组进行排序的。 我按照预期的方式工作,每当我单独测试它时都返回正确的索引。我写信是为了了解它是如何工作的,并使其也能工作。一旦将两者结合在一起,它就会崩溃。我知道我在一起实施起来不正确,但是我不确定问题出在哪里。 这是我得到的: 我在运行它时得到的返回值是。有什么

  • 问题内容: 我正在编写一个使用二进制搜索树存储数据的程序。在以前的程序中(无关),我能够使用Java SE6随附的实现来实现链表。二进制搜索树是否有类似的东西,还是我需要“从头开始”? 问题答案: 您可以使用。被实现为一棵红黑树,这是一个自平衡二进制搜索树。

  • 问题内容: 为什么这段代码会抛出: 问题答案: 大于 。 参见http://codingdict.com/questions/114817 考虑改为使用。 编辑: 好,这对我来说是新的。看来,和解析二进制的符号-幅度不作为二进制补码。