今日、私はJava 8を学び始めました。だから私はJava 8の新機能です。 私は活動のリストを持っています。アクティビティの名前はstartTime、endTimeです。 startTimeとendTimeについては、私はjoda時間からDateTimeを使用しています。ストリームにdateTime値を追加する方法(java)?
私は、監視期間中に計算された合計期間を各アクティビティについて にマップするMap(String、DateTime)という形式のデータ構造を決定しようとしています。ここで
は、私のコードの抜粋です:
import java.util.ArrayList;
import java.util.Map;
import org.joda.time.DateTime;
class Activity {
public DateTime startTime;
public DateTime endTime;
public String activityLabel;
public Activity(DateTime startTime, DateTime endTime, String activityLabel) {
super();
this.startTime = startTime;
this.endTime = endTime;
this.activityLabel = activityLabel;
}
}
public class Main {
public static void main(String[] args) {
ArrayList<Activity> list = new ArrayList<>();
//adding activities to list
list.add(new Activity(new DateTime(2017, 5, 12, 13, 10, 0), new DateTime(2017, 5, 12, 13, 40, 0), "Showering"));
list.add(new Activity(new DateTime(2017, 5, 12, 13, 41, 0), new DateTime(2017, 5, 12, 14, 20, 0), "Cooking"));
list.add(new Activity(new DateTime(2017, 5, 12, 14, 20, 0), new DateTime(2017, 5, 12, 14, 50, 0), "Eating"));
list.add(new Activity(new DateTime(2017, 5, 12, 14, 51, 0), new DateTime(2017, 5, 12, 15, 30, 0), "Sleeping"));
list.add(new Activity(new DateTime(2017, 5, 12, 17, 22, 0), new DateTime(2017, 5, 12, 17, 30, 0), "Showering"));
list.add(new Activity(new DateTime(2017, 5, 12, 17, 41, 0), new DateTime(2017, 5, 12, 17, 50, 0), "Cooking"));
list.add(new Activity(new DateTime(2017, 5, 12, 17, 50, 0), new DateTime(2017, 5, 12, 18, 20, 0), "Eating"));
list.add(new Activity(new DateTime(2017, 5, 12, 18, 21, 0), new DateTime(2017, 5, 12, 20, 30, 0), "TV"));
//creating a stream from list
Map<String, DateTime> map;
// map = list.stream().collect(Collectors.groupingBy(s -> s.activityLabel, Collectors. ...
}
}
私は:(この結果を得る方法がわからない、私はさまざまな方法を試してみましたが、私は入手方法を見つけることができませんでした。各アクティビティの合計時間は...私を助けてくれてありがとう
が
私はjoda時間からDateTimeを使用する必要があります。それは選択肢ではありません... – SomeoneNew
@FedericoPeraltaSchaffner私は 'groupingBy'操作によって私が捕まったことを認めなければなりません。そして、私はtoMapのアプローチを思いついた。しかし、結局私は 'groupingBy'を使って解決策を考え出しました。 – Flown
@FedericoPeraltaSchaffner私の例を修正しました。とにかく、ヒントありがとう。 – Flown