@Override
    public DataModelIF<Long, Long> parseData(final File f) throws IOException {
        DataModelIF<Long, Long> dataset = new DataModel<>();
        Reader in = new InputStreamReader(new FileInputStream(f), "UTF-8");

        Iterable<CSVRecord> records;
        if (isHasHeader()) {
            records = CSVFormat.EXCEL.withDelimiter(getDelimiter()).withHeader().parse(in);
        } else {
            records = CSVFormat.EXCEL.withDelimiter(getDelimiter()).parse(in);
        }
        for (CSVRecord record : records) {
            long userID = Long.parseLong(record.get(getUserTok()));
            long itemID = Long.parseLong(record.get(getItemTok()));
            double preference = Double.parseDouble(record.get(getPrefTok()));
            dataset.addPreference(userID, itemID, preference);
        }
        in.close();
        return dataset;
    }
@ Override public DataModelIF < Long , Long > parseData ( final File f ) throws IOException { DataModelIF < Long , Long > dataset = new DataModel < > ( ) ; Reader in = new InputStreamReader ( new FileInputStream ( f ) , "UTF-8" ) ; Iterable < CSVRecord > records ; if ( isHasHeader ( ) ) { records = CSVFormat . EXCEL . withDelimiter ( getDelimiter ( ) ) . withHeader ( ) . parse ( in ) ; } else { records = CSVFormat . EXCEL . withDelimiter ( getDelimiter ( ) ) . parse ( in ) ; } for ( CSVRecord record : records ) { long userID = Long . parseLong ( record . get ( getUserTok ( ) ) ) ; long itemID = Long . parseLong ( record . get ( getItemTok ( ) ) ) ; double preference = Double . parseDouble ( record . get ( getPrefTok ( ) ) ) ; dataset . addPreference ( userID , itemID , preference ) ; } in . close ( ) ; return dataset ; }
{@inheritDoc}