日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java利用TreeMap实现统计种类

發布時間:2025/3/19 java 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java利用TreeMap实现统计种类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

有的時候需要統計一下表中某列各個種類的數量以及比例。例如:統計一個班,團員、黨員、群眾各有多少人。統計商品的種類,每個種類的商品有多少個。

本文提供了一種Java語言的解決方案。

代碼

import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.TreeMap;/*** @author yucheng*/ public class TypeStatics {public static void main(String[] args) {try {// 需要統計的列名String sortRow = "product_type";// csv文件的間隔符String regex = "\t";File tsv = new File("test.tsv");BufferedReader br = new BufferedReader(new FileReader(tsv));String[] headers = br.readLine().split(regex);Map<String, Integer> map = new TreeMap<>(Comparator.reverseOrder());String line;int count = 0;while ((line = br.readLine()) != null) {count++;String[] fields = line.split(regex);for (int i = 0; i < fields.length; i++) {if (sortRow.equals(headers[i])) {String key = fields[i];if (map.containsKey(key)) {int c = map.get(key) + 1;map.put(key, c);} else {map.put(key, 1);}}}}List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());//然后通過比較器來實現排序,升序排序Collections.sort(list, (o1, o2) -> Integer.compare(o1.getValue() - o2.getValue(), 0));for (Map.Entry<String, Integer> mapping : list) {System.out.println(mapping.getKey() + ":" + mapping.getValue());}System.out.println(map.size());System.out.println(count);} catch (IOException e) {e.printStackTrace();}}}

?

總結

以上是生活随笔為你收集整理的Java利用TreeMap实现统计种类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。