導航:首頁 > 編程語言 > java數據分組

java數據分組

發布時間:2022-07-23 14:10:52

A. java怎樣將集合中的數值數據分區間統計個數:例如(0-1000)有幾個人數據,1000-2000有幾個數據

集合分組統計處理, 實現的方法很多,簡單的寫幾種方法供參考;(理解後,自行擴展完善)

方法一:(Java8流處理粗略版) 該版本存在的問題:有些區間沒有數據,就不列印顯示該區間

importjava.util.*;
importjava.util.stream.*;

publicclassNumberDemo{
publicstaticvoidmain(String[]args){

ArrayList<Integer>list=newArrayList<Integer>();
intnumbers=10;//集合里數字的個數
intspace=1000;//區間的間隔

//給集合里添加數字
Randomrd=newRandom();
for(inti=0;i<numbers;i++){
list.add(rd.nextInt(5000));//集合里每個數字的范圍是0~4999
}

funStream(list,space);
}

privatestaticvoidfunStream(ArrayList<Integer>list,intspace){
//使用流處理把數字分組
Map<String,List<Integer>>map=list.stream().collect(Collectors.groupingBy((num)->{
return"區間:["+num/space*space+","+(num/space+1)*space+")";//分組規則
}));
map.forEach((k,v)->{
System.out.println(k);
System.out.println(" "+v.size()+"個數據");
});
}
}

方法二:(Java8流處理詳細版) 就算有的區間是0個數據,照樣列印出來

importjava.util.*;
importjava.util.stream.*;

publicclassNumberDemo2{
publicstaticvoidmain(String[]args){
ArrayList<Integer>list=newArrayList<Integer>();
intnumbers=10;//集合里數字的個數
intspace=1000;//區間的間隔

//給集合里添加數字
Randomrd=newRandom();
for(inti=0;i<numbers;i++){
list.add(rd.nextInt(5000));//集合里每個數字的范圍是0~4999
}

funStream(list,space);
}

privatestaticvoidfunStream(ArrayList<Integer>list,intspace){
//使用流處理把數字分組
Map<Integer,List<Integer>>map=list.stream().collect(Collectors.groupingBy((num)->{
returnnum/space;//分組規則
}));

//獲取集合里的最大值
Optional<Integer>maxop=list.stream().collect(Collectors.maxBy(Integer::compareTo));
intmax=maxop.orElse(0);
//計算出區間的數量
intgroups=max%space==0?max/space:max/space+1;
//列印結果
for(inti=0;i<groups;i++){
System.out.println("區間:["+i*space+","+(i+1)*space+")");
System.out.println(" 有"+(map.get(i)==null?0:map.get(i).size())+"個數據");
//System.out.println(" "+map.get(i));//把數據列印出來
}
}
}

方法三:(比較傳統的方法)

importjava.util.*;

publicclassNumberDemo3{
publicstaticvoidmain(String[]args){
ArrayList<Integer>list=newArrayList<Integer>();
intnumbers=10;//集合里數字的個數
intspace=1000;//區間的間隔

//給集合里添加數字
Randomrd=newRandom();
for(inti=0;i<numbers;i++){
list.add(rd.nextInt(5000));//集合里每個數字的范圍是0~4999
}

fun(list,space);
}
privatestaticvoidfun(ArrayList<Integer>list,intspace){
Collections.sort(list);//排序
intmax=list.get(list.size()-1);//取得最大值
intgroups=max%space==0?max/space:max/space+1;//取得區間的數量
HashMap<Integer,ArrayList<Integer>>map=newHashMap<Integer,ArrayList<Integer>>();//存區間和該區間的數字
for(inti=0;i<groups;i++){
map.put(i,newArrayList<>());
}
//把元素添加到指定的區間
for(inti=0;i<list.size();i++){
map.get(list.get(i)/space).add(list.get(i));
}
//列印結果
for(inti=0;i<groups;i++){
System.out.println("區間:["+i*space+","+(i+1)*space+")");
System.out.println(" 有"+map.get(i).size()+"個數據");
//System.out.println(" "+map.get(i));//把數據列印出來
}
}
}

測試效果如下

區間:[0,1000)
有5個數據
區間:[1000,2000)
有0個數據
區間:[2000,3000)
有1個數據
區間:[3000,4000)
有2個數據
區間:[4000,5000)
有2個數據

B. java 怎樣分組

你好,提問者:
1、J2SE:為java基礎部分。用於桌面應用程序。
2、J2EE:網頁系統開發。目前最流行的技術。
3、J2ME:手機系統、移動設備的開發。

C. java如何對一堆鍵值對數據分組

要實現什麼功能`按什麼要求分組``有什麼樣數據?

D. Java 對數據分組

把從資料庫讀出來的ResultSet 傳入這個方法

public static Map<Long, List<Long>> orgnaizeData(ResultSet rs) {
Map<Long, List<Long>> result = null;
try {
if (rs.getRow() > 0) {
result = new HashMap<Long, List<Long>>();
while (rs.next()) {
Long key = rs.getLong(1);
Long value = rs.getLong(2);
if (result.containsKey(key)) {
result.get(key).add(value);
} else {
List<Long> valueList = new ArrayList<Long>();
valueList.add(value);
result.put(key, valueList);
}
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}

E. java 數據分組

  1. 輸入兩個文件,最好是選擇輸入文件而不是在代碼里指定輸入文件(這個我一直沒弄好。)


    可以這樣解決,用java中的swing寫一個file,然後找到你要的那個文件,接著將其完整的路徑用string保存下來,就可以了。



2.輸出在samplelist中存在,在a.txt中出現的一組數據(組的定義是指看起來是描述這個事物的一組數據,這個我一直沒弄懂該怎麼分組)


這個我不是很明白

F. java list分組

沒明白你要的目的. 是想用list 集合來輸出結果.還是在資料庫里查詢出 這樣格式的結果.
如果是在java 後台.可以先創建Map 集合.Map<String,List<Object>> key代表 顏色 及尺寸. value 是一個List 集合.list 中存儲 紅-1 綠-2 藍-3 這樣的元素..

G. java開發中這種字元串數據歸納分組用什麼技術比較快

Java現在有的最多的是JDBC和Hibernater;
而Hibernater的底層也是用JDBC來實現的。
在數據量 很大 的時候,Hibernater可能會有效率問題。那是就選用JDBC來實現。
但是當數據量 特別大 是,JDBC可能也會有效率問題,因為JDBC是用Java實現的。速度上還是有問題的。
那是又會使用其他的方式來直接對資料庫經行操作。

H. java截取字元串中的數字,並且分組

用正則表達式按數字和中文的交界處切分字元串,就可以實現你的要求,完整的Java程序如下

public class F{

public static void main(String[] args){

String str="魚豆腐20海帶3掌中寶8雞翅2可樂2";

String[] s=str.split("(?<=[0-9])(?=[u4e00-u9fa5])");

for(int i=0;i<s.length;i++){

System.out.println(s[i]);

}

}

}

I. Java 隨機分組

有一組數據,然後你又每組需要分4個人,到底是一組數據還是多組數據呀,不知道你是不是想把一組 數據分成4份?如果是,給你個思路 ,假如你的這組數據是一個字元串數組a,你就循環a的長度次數,每次都產生一個0到a長度之間的隨機數,強轉成int,並記錄到一個新數組里,這樣一直循環取,當然,如果新數組里已經記錄的數字不要重復記錄,保證這個新數組里裝的是唯一的數,並且這些數組里的數字,是你字元串數組的a的下標,然後循環新數組,按新數組里的值做下標去取a數組里的字元,a長度假如是20的話,每隔五個就放在一起,這樣分成四份,而且取的順序是新數組的下標來決定的,而新數組的下標又是隨機生成的,。。。這樣就達到隨機將這組數據分成份了

J. Java 數據分組問題

分組數為3,那麼就是兩個指針,劃分的三個區域即為所求。

好久沒做過OJ上的題目了,很水,小范圍數據能過,有什麼問題一起探討。

/*
*你的是這個數據
53
12345
*/


importjava.util.Scanner;

publicclassMain
{
publicstaticintN;
publicstaticint[]array;
publicstaticintP;
publicstaticvoidmain(String[]args)
{
Scannerscan=newScanner(System.in);
//N;數組長度
N=scan.nextInt();
//P:集合數
P=scan.nextInt();
array=newint[N];
for(inti=0;i<N;i++)
{
array[i]=scan.nextInt();
}
//不好確定循環次數,用遞歸解決
startDivide(0,P-1,"");
}

publicstaticvoidstartDivide(intstart,intdeep,Stringanswer)
{
if(deep==-1)
{
//將剩餘的輸出
for(inti=start;i<Math.min(N-deep,array.length);i++)
{
answer+=""+array[i]+"";
}
System.out.println(answer+"}");
}
else
{
//這步貌似有問題?
if(!answer.equals(""))
{
answer+="}";
}
if(answer.equals("")||answer.charAt(answer.length()-1)=='}')
{
answer+="{";
}
for(inti=start;i<N-deep;i++)
{
answer+=""+array[i]+"";
startDivide(i+1,deep-1,answer);
if(deep==0)
break;
}
}
}
}
閱讀全文

與java數據分組相關的資料

熱點內容
java自動格式化 瀏覽:617
ipad怎麼查看文件夾大小 瀏覽:581
手工粘土解壓球 瀏覽:550
在線視頻教育源碼 瀏覽:39
快四十學什麼編程 瀏覽:754
gnumakelinux 瀏覽:537
視易峰雲伺服器怎麼改系統 瀏覽:535
javamap取值 瀏覽:768
mac和win磁碟加密軟體 瀏覽:474
蘋果為什麼會連接不到伺服器 瀏覽:726
pdf格式文件如何保存 瀏覽:303
小霸王伺服器tx什麼意思 瀏覽:75
解釋dns命令 瀏覽:584
dmx512怎麼編程 瀏覽:744
北京雲主機17t雲伺服器 瀏覽:232
php伺服器url地址 瀏覽:440
哪裡看書免費app 瀏覽:437
php刪除數組中重復值 瀏覽:786
經理下命令咱都別說話是什麼意思 瀏覽:625
上海風機可編程式控制制器價格 瀏覽:249