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

在Java中基于off对象类型的列表中显示元素

齐驰
2023-03-14
public interface Vehicle {
   void vehicleName();
}

public class Car implements Vehicle{

    @Override
    public String vehicleName() {
        System.out.println("I'm a car");
    }
    
}

public class Bike implements Vehicle{

    @Override
    public String vehicleName() {
        System.out.println("I'm a bike");
    }
    
}


public class Transportation {

List<Vehicle> vehicleList = new ArrayList<>();

}

共有1个答案

杨波娃
2023-03-14

您可以构建一个映射,其中键是vehicle实例class,value是count(特定类型在列表中出现的次数)。

 Map<Class<? extends Vehicle>, Long> result = vehicleList.stream()
            .collect(Collectors.groupingBy(Vehicle::getClass, Collectors.counting()));

假设您有两辆车和一辆自行车,那么打印result映射将打印规范类名,

{class <your_java_package_path>.Bike=1, class <your_java_package_path>.Car=2}

若要获取简单类名,请调用getSimplename作为:

result.forEach((clazz, count) -> System.out.println(clazz.getSimpleName() + " " + count));
Bike 1
Car 2
 类似资料:
  • 我想到这个问题是因为我在某处读到Java不是纯面向对象的语言,因为它使用的是原语(不是对象)。我同意这一点。现在我的问题是,为什么我们使用,而我们已经有了相同类型的对象?

  • 以下是我的清单: 我想问题出在“路易”和“大虾”,因为列表是空的。我该怎么解决呢?

  • 我正在尝试根据另一个列表中存在的值筛选一个列表。我已经经历了其他类似的问题,并试图利用这些来实现我的目标,但无法做到这一点。 列表1由类(L1)的对象组成 列表2由类(L2)的对象组成 因此,筛选后,列表1将不包含,因为该模型与中的不匹配。 我怎么能这么做?

  • 我有三个下拉框。我的第一个下拉选择框如下所示 我的第二个看起来是这样的 第三个是这样的 如果从第一个下拉列表中选择值3,则只能从第二个和第三个下拉列表中选择三个选项(即1、2、3)。 该选项的其余部分应禁用或不可选。 如果从第二个下拉列表中选择值2,第三个下拉列表应该只能选择1。((即3-2)),反之亦然。 类似地,对于第一个下拉框 中选择的所有可能选项值,都应应用相同的逻辑 为我的查询建议jav

  • 我使用带thymeleaf 3的Spring靴 我试着展示一个豆子 在我的控制器里我有 在我的车里 在我的位置 在我的胸腺碎片中 当我试图显示这个片段时,我得到 org.attoparser。ParseException:异常评估SpringEL表达式:“cities.id”由:org.springframework.expression.spel引起。SpelEvaluationExceptio

  • 问题内容: 我正在尝试开发一种通用的表加载器,其架构在运行时是已知的。这需要具有包含不同类型的元素的列表,并支持各种get和诸如集方法的类,,。元素我考虑的类型有,,,和,和。每个元素的实际类型在运行时都是已知的,我将它们存储在一个List中,描述其架构以进行进一步处理。 我的问题是:我应该在或中存储这样的元素列表吗?还是有更好的方法来实现此类? 问题答案: 由于您的类的共同祖先是,并且由于不会使