0
package com.mkyong.util;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ReadFromCVS {

    ArrayList<datas> dataList = new ArrayList<datas>();

    public static void main(String[] args) {

        ReadFromCVS obj = new ReadFromCVS();
        obj.run();
        obj.printDataList(obj.dataList);



    }

    public void run() {
        String csvFile = "C:\\Users\\User\\Downloads\\SalesData.csv";
        BufferedReader br = null;
        String csvSplitBy = ",";
        String line = "";

        try {
            br = new BufferedReader(new FileReader(csvFile));
            br.readLine();
            while ((line = br.readLine()) != null) {

                // split on comma
                String[] datas = line.split(csvSplitBy);

                // crate data object to store values
                datas dataObject = new datas();

                // add values from the csv file to data object
                dataObject.setProductId(Integer.parseInt(datas[0]));
                dataObject.setUnits(Integer.parseInt(datas[1]));

                // adding data object to a list
                dataList.add(dataObject);
            }
            // print values stored in a datalist
            Collections.sort(dataList);

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    public void printDataList(List<datas> dataListToPrint) {
        for (int i = 0; i < dataListToPrint.size(); i++) {
            System.out.println("Product ID: " + dataListToPrint.get(i).getProductId() + " Units: "
                    + dataListToPrint.get(i).getUnits());
        }
    }
}

class datas implements Comparable<datas> {
    private int productId;
    private int units;

    public int getProductId() {
        return productId;
    }

    public void setProductId(int productId) {
        this.productId = productId;
    }

    public int getUnits() {
        return units;
    }

    public void setUnits(int units) {
        this.units = units;
    }

    @Override
    public int compareTo(datas d) {
        if (this.getProductId() > d.getProductId()) {
            return 1;
        } else if (this.getProductId() < d.getProductId()) {
            return -1;
        } else {
            return 0;
        }
    }

}

what ia trying to do is read csv file( contains (product Id and units) and put them in arraylist of objects, then sort the arraylist in ascending order, then I have to look for duplicate product id and add the units to same single product id so their will be no duplicate in the second arraylist.. i am having trouble creating second arraylist and moving the unique products and adding the duplicate product id units to the same unique id units.. please help me

This the out put i get so far:
Product ID: 10001 Units: 5
Product ID: 10001 Units: 8
Product ID: 10001 Units: 7
Product ID: 10002 Units: 4
Product ID: 10002 Units: 10
Product ID: 10002 Units: 6
Product ID: 10003 Units: 8
Product ID: 10003 Units: 6
Product ID: 10003 Units: 3
Product ID: 10003 Units: 7
Product ID: 10003 Units: 4
Product ID: 10004 Units: 6
Product ID: 10004 Units: 9

2
Contributors
1
Reply
10
Views
1 Year
Discussion Span
Last Post by JamesCherrill
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.