Collections 1

PHOTO EMBED

Wed May 29 2024 09:26:42 GMT+0000 (Coordinated Universal Time)

Saved by @exam123

//collections


//CallLog.java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;

class CallLog implements Comparable<CallLog> {
    String name;
    String dialledNumber;
    int duration;
    String dialledDate;

    public CallLog(String name, String dialledNumber, int duration, String dialledDate) {
        this.name = name;
        this.dialledNumber = dialledNumber;
        this.duration = duration;
        this.dialledDate = dialledDate;
    }

    @Override
    public int compareTo(CallLog o) {
        return this.name.compareTo(o.name);
    }

    @Override
    public String toString() {
        return String.format("%s(+91-%s) %d Seconds", name, dialledNumber, duration);
    }
}


 //Main.java//
import java.util.ArrayList;
import java.util.Collections;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException
public class Main {
    public static void main(String[] args) {
        ArrayList<CallLog> logs = readCallLogsFromFile("weeklycall.csv");

        Collections.sort(logs);
        Collections.reverse(logs); // Reverse the sorted list
        System.out.println("Call-Logs");
        System.out.println("Caller Name Duration");
        for (CallLog log : logs) {
            System.out.println(log);
        }
    }

    private static ArrayList<CallLog> readCallLogsFromFile(String filename) {
        ArrayList<CallLog> logs = new ArrayList<>();
        try (BufferedReader br = new BufferedReader(new FileReader(filename))) {
            String line;
            while ((line = br.readLine()) != null) {
                String[] parts = line.split(",");
                String name = parts[0];
                String dialledNumber = parts[1];
                int duration = Integer.parseInt(parts[2]);
                String dialledDate = parts[3];
                logs.add(new CallLog(name, dialledNumber, duration, dialledDate));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return logs;
    }
}


content_copyCOPY