Как посчитать повторение элементов в списке массивов? - PullRequest
0 голосов
/ 20 февраля 2020
if(Collections.frequency(ItemSet, distinctItemsList) >= support) {
    ItemList.addAll(ItemSet);
    FrequentItem1.put(ItemList, Collections.frequency(ItemSet, distinctItemsList));
    System.out.println(FrequentItem1);
}

приведенный выше код просто повторяет транзакцию, а не дает элемент, за которым следует частота

ItemList - список массивов отдельных транзакций

TID , ITEMLIST

Тайленол, Термометр вода, Молоко, Батарея

ItemSet - это список массивов с такими элементами, как Тайленол, Термометр, Батарея и др. c .. то есть функция Main выглядит следующим образом

try {
    Statement statement= connection.createStatement();
    String sql="Select distinct TID from transaction";
    ResultSet SetTid= statement.executeQuery(sql);
    while(SetTid.next()) {
        int initialTID= SetTid.getInt("TID");
        TID.add(initialTID);
    }
    System.out.println("TID  Items");
    for(int initialTID : TID) {
        String sqlitem="Select ItemSet from transaction where TID="+ initialTID;
        ResultSet setItem= statement.executeQuery(sqlitem);
        while(setItem.next()) {
            String items= setItem.getString("ItemSet");
            //System.out.println("&&&&&&&&"+ items);
            ItemList.add(items);
            ItemSet=Arrays.asList(items.split(","));

            noOfTransaction++;
            System.out.println(initialTID+":"+ items);
            //System.out.println(initialTID+":"+ ItemList);
        }

        for(String items : ItemSet) {
            System.out.println("&&&&>>"+ items);
            if(! distinctItemsList.contains(items)) {
                distinctItemsList.add(items);
            }
        }
        System.out.println("No of transaction"+ noOfTransaction);
    }
}

DistinctItem list - список массивов, содержащий уникальные элементы.

1 Ответ

0 голосов
/ 20 февраля 2020

Если вы используете java -8, ниже следует сгенерировать хэш-карту со словом и его частотой-

Map<String, Long> collect = wordsList.stream().collect(groupingBy(Function.identity(), counting()));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...