Java程序进行短路和计数

标签 java

born | died
1902   1991
1941   1978
2004       
1957       
1989   2008
1909   2005
1918       
1913   2010
1979       
1961   2002
1977   2003
1909   1991

我需要编写一个方法,获取上述信息并返回每年人口低于前一年的情况。

我是java初学者。有人可以帮助我如何实现这一目标吗?

public class Lifespan {

    public static void main(String[] args) {
        Lifespan lifespan = new Lifespan();
        lifespan.computeLifeSpan();
    }

    public void computeLifeSpan() {

        List<String> input = new ArrayList<String>();
        Map<String,String> map = new HashMap<String,String>();

      input.add("1902:1991");
      input.add("1941:1978");
      input.add("2004:");

      List<LifeSpanModel> filteredInput = new ArrayList<LifeSpanModel>();
        LifeSpanModel lifeSpanModel;
        int population = 0;
        for(String record:input) {
            lifeSpanModel= new LifeSpanModel();
            String earchRecord[] = record.split(":");
            lifeSpanModel.setBornYear(earchRecord[0]);
            lifeSpanModel.setDiedYear( earchRecord.length == 1 ? "Alive" : earchRecord[1]);
            filteredInput.add(lifeSpanModel);
            String k=map.get(lifeSpanModel.getBornYear());
            if(map.get(lifeSpanModel.getBornYear())!= null) { // add alive person here
                population = population + 1;
                map.put(lifeSpanModel.getBornYear(), lifeSpanModel.getDiedYear());
            }else {
                map.put(lifeSpanModel.getBornYear(), lifeSpanModel.getDiedYear());
            }

        }

    }

}
  • 如果人口中的某一成员出生于某一年,他们将计入 那一年的人口。
  • 同样,如果人口中的某一成员在某一年死亡,他们也将计入 那一年的人口。
  • 死亡一栏为空表示还活着

对于该示例,正确的实现将返回以下年份:1992、2003、 2006、2009、2011。

最佳答案

每一行基本上都是一个人。您可以创建一个类,以便可以询问这个人是否还活着。

var person = new Person(1990, 2000);
person.wasAliveIn(1998);

那么这只是一个迭代多年来并计算任意给定年份有多少人活着的问题。

关于Java程序进行短路和计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54664797/

相关文章:

java - 如何实现集合论与对象集的并集和交集

java - 在 PubSubToBigQuery 模板中定义 TableSchema

java - 线程安全映射操作

java - BigInteger.pow(大整数)?

java - 使用 maven 连接到内存 SQLite 的 java 应用程序找不到适合 "jdbc:sqlite:myDB.sqlite"的驱动程序

java - 模拟 Java 的 app.config?

Java HashMap 调整大小

java - 检查 jTable 数据中的重复行

java - 如何调整 JavaFX 3D 子场景的大小?

java - 如何将 Electron.js 与桌面应用程序的 Java 代码连接起来?