当前位置: 首页 > 面试题库 >

如何在对象数组中查找第二大元素

芮化
2023-03-14
问题内容

我需要知道在对象数组中查找第二大元素的方法。例如 如果存在Book类的一系列对象,这些对象的属性如书名,价格,库存数量

Book[] b=new Book[];
b[0]=new Book("x",200,50);
b[1]=new Book("y",100,44);
b[2]=new Book("z",500,29);

我们如何列出价格第二高的书以及其他属性,例如名称和库存数量


问题答案:

做一个ListBooks从它,它的排序使用Collections.sort,并采取元素索引1。

    List<Book> booklist = new ArrayList<Book>(Arrays.asList(b));

    Collections.sort(booklist, new Comparator<Book>() {

        @Override
        public int compare(Book o1, Book o2) {

            return o2.getPrice() - o1.getPrice();
        }
    });
    if (booklist.size() > 1) {
        System.out.println(booklist.get(1));
    }


 类似资料:
  • 问题内容: 我只是在练习一些MIT Java作业。但是,我不确定如何找到第二大数字。http://ocw.csail.mit.edu/f/13 问题答案: 仅对数组进行排序以查找订单统计信息太浪费了。您可以通过遵循与现有算法相似的算法找到第二大元素,并使用一个代表第二大数字的附加变量。 当前,下一个元素可以大于最大值或等于/小于最大值,因此单个元素就足够了: 考虑两个变量,下一个元素可能是 大于最

  • 我有对象列表。 每个项目有1个arrayList Item.propertylist.key.equals(“test”)作为新列表。

  • 问题内容: 给定一个未排序的数组,您需要找到数组中o(n) 时间复杂度第二大的元素。 例如: 问题答案: 您可以对数组进行排序,然后返回数组中的倒数第二个元素,但这将在 o ( nlogn ) 时间内完成, 算法: 用最小可能值初始化最高和第二最高。 迭代数组。 如果当前元素大于最高 分配 secondHighest = 最高 分配最高 = currentElement 否则如果当前元素大于 se

  • 问题内容: 假设我有一个对象数组。并且对象具有属性。除了逐一读取对象并逐一比较值之外,是否还有其他捷径可做?谢谢。 问题答案: 您可以简单地将用户数组映射到用户年龄数组和查找最大年龄数组:

  • 我在团结中挣扎。我想创建一个脚本,能够找到离玩家最近的对象(我设法做到了),以及离玩家第二近的对象。我的问题是如何修改此代码,使其也适用于第二个对象?

  • 问题内容: 我正在寻找一种非常快速,干净且有效的方法来获取以下JSON切片中的最大“ y”值: for-loop是解决此问题的唯一方法吗?我热衷于使用。 问题答案: 要在中找到对象的最大值: