From e9c8148686f1a16461ca53a3b637cb8dabd210bc Mon Sep 17 00:00:00 2001 From: Jayce Date: Mon, 29 Sep 2025 20:22:33 -0500 Subject: [PATCH 1/9] Read the contents of the csv file and store the data in an ArrayList. --- .DS_Store | Bin 0 -> 6148 bytes evenProblems.class | Bin 0 -> 1189 bytes evenProblems.java | 30 ++++++++++++++++++++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 .DS_Store create mode 100644 evenProblems.class create mode 100644 evenProblems.java diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f2c9aa2b5f3e3c0b2b1395b7cab3c1a5611aed8d GIT binary patch literal 6148 zcmeHK!HN?>5Uoz4nPCy4D0&eFye=`WF06Q&joE_-L3TtBDsd(gG&(!I%uJF)2+URe z7?1vm|Kdqsb@v7{s~$z93aVdqbyauzb?BZVA~l?+cZhmKoIIONm*d{mhdQs~Sw1aH!YrL4m`-9!!V1K`h#U& z;csc=lEX9j2xGIIMO5UO&fmbt@mFX{3usPHs31)VW$2wyNqw5Yj$xGzsy-v{XR0p$ zVUBm0VbLU8-E7R@(=i>Mn)UItDs3E>RTfUT@hhG7!U^B<>>7Q z6~cfpAPh7Z;QJwfGKLOoi{|P;V@d#E2W}&<&8I&wUXIw`X<=5Z@4SD`3Zc&NaHlL{?LD+~w&+YGdAx5w}Q(eLa3?Ih_51H!<6 z#enLJqR|jra&POo&GB0sKwm>yIIgz1Nr7RWV#M-Od;@9({(uc&=&-g34@5o$3=Pr< I1Amo)AC>)%Pyhe` literal 0 HcmV?d00001 diff --git a/evenProblems.class b/evenProblems.class new file mode 100644 index 0000000000000000000000000000000000000000..25e0af2baa58877aa7c97b8ef780f81b0b0f4755 GIT binary patch literal 1189 zcmZ`&+fvg|6kVs#o)Q8r1qxLV5z&@g5JVIZg>o5{+fc*-$6*fX0RwH)$pz($c*X~q zkr{pS!Ef;gd=Yn2P%heZPEO9=Ywf*OcE11m`~^T3vkF3};HXp)MuZ{0Bld(=5azbF zxVa;BmmxA{n1(yfP?658MiFIrsl9fj?P$VtT*K6+EZr+g({;4$QZBnOFg!S<3CA(E zP5-oiNL!Jj*t;zAT3)z9Gfc;`g{jLv-PwymVE~89P#=``T%({(*tXc8GaOezwclNg zAsIvsOPlnzwxlid%TnZ}%~8jYIFHR31zA2<5J$bQsez#}J@;2t&b1A5do;7EpcY9# zqlrqNWe|NCeil!uxPhAtQJad*8Kz`tNN29I`E9nUxP>-yN#yfaYL=ZG&8+)1+g050 zoet{-%aI&+&y@$Jue`Ud4`Q<*6?EX9iu*`2)DUIPE0t{NIFiVlFADmDpq@Fp&e=%H zi^b`Wx-7YdWh%&^M@6q+I94JD+?*@)-4$EtvI-jdIUcAOz~H3`$n86>ERrP4qd90S z>n7r*G69)V991xcM;yZ{9^=V{;umrlcu=xn{>K;Udz3+yd(vF8EfQaJ7%Ha+YW7(jO&; zx{E#a`BQ{;jL;|J|3aX*hzPA?^wdgs8fApLj=>IT!|;?=KMYjSHI8Srr&QKLFixk1 z1fNS(&7Yup?HDx+C#YRJL42+I7>Q#vj#Q>9kI+0Htly9*KlSz;q2v%_#5ehmTM~r$> zDX)gQuB9tZh&ps4L4#9|K{OCPNepqqH4`$44KyK-6n5!5c~0m_L{AA2=9u8f2LEbK gOi0dhbexh4kt-oO2BRhV6QN0tjPKVpF@-Sm8#rJK+yDRo literal 0 HcmV?d00001 diff --git a/evenProblems.java b/evenProblems.java new file mode 100644 index 0000000..014d0a5 --- /dev/null +++ b/evenProblems.java @@ -0,0 +1,30 @@ +import java.io.BufferedReader; +import java.io.IOException; +import java.io.FileReader; +import java.util.ArrayList; +import java.util.Scanner; +import java.util.Collections; + + +public class evenProblems { + + public static void main(String[] args){ + String csvPath = "/Users/austin/Documents/CPSC_2735/assignment05/Team-Red/data/insurance.csv"; + String line = ""; + ArrayList data = new ArrayList<>(); + + try (BufferedReader reader = new BufferedReader(new FileReader(csvPath))){ + line = reader.readLine(); // Skip header line + while(reader.readLine() != null){ + line = reader.readLine(); + data.add(line); + } + } catch (IOException e){ + e.printStackTrace(); + } + System.out.println(data); + } + + +} + From 6f2aafe14ba12116cbf70cd55eb467baf5d67a5b Mon Sep 17 00:00:00 2001 From: Jayce Date: Mon, 29 Sep 2025 20:28:46 -0500 Subject: [PATCH 2/9] Stored the age, bmi, children, and charges values in seperate ArrayLists --- evenProblems.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/evenProblems.java b/evenProblems.java index 014d0a5..2b8a565 100644 --- a/evenProblems.java +++ b/evenProblems.java @@ -12,6 +12,10 @@ public static void main(String[] args){ String csvPath = "/Users/austin/Documents/CPSC_2735/assignment05/Team-Red/data/insurance.csv"; String line = ""; ArrayList data = new ArrayList<>(); + ArrayList ageVals = new ArrayList<>(); + ArrayList bmiVals = new ArrayList<>(); + ArrayList childrenVals = new ArrayList<>(); + ArrayList chargesVals = new ArrayList<>(); try (BufferedReader reader = new BufferedReader(new FileReader(csvPath))){ line = reader.readLine(); // Skip header line @@ -22,7 +26,15 @@ public static void main(String[] args){ } catch (IOException e){ e.printStackTrace(); } - System.out.println(data); + for(String c : data){ + String[] values = c.split(","); + ageVals.add(Integer.parseInt(values[0])); + bmiVals.add(Double.parseDouble(values[2])); + childrenVals.add(Integer.parseInt(values[3])); + chargesVals.add(Double.parseDouble(values[6])); + } + + } From d0f184df67aad57de2520870c02cd37824ff2ae9 Mon Sep 17 00:00:00 2001 From: Jayce Date: Mon, 29 Sep 2025 20:40:21 -0500 Subject: [PATCH 3/9] Create function that calculates the count, mean, min, and max from the data in an Integer array. --- evenProblems.class | Bin 1189 -> 3047 bytes evenProblems.java | 37 ++++++++++++++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/evenProblems.class b/evenProblems.class index 25e0af2baa58877aa7c97b8ef780f81b0b0f4755..116643f9f88a027ea5a48744b6b25a6b51420f51 100644 GIT binary patch literal 3047 zcmaJ@TXPi075-X#ncdkz5(^8ACD~vwNEldKaAJIo6X#;*>PopvPpPu~AQVx~<;4$n`6u`vxKhbuC|8uzvpZ%Nw!F2~bGrNV zIeotG^y&Wee`|jOkjHx}+7M9?)eu9Rq4OGF;8~Mfv)R)#*F?!tNUt%o=uf%)fe7IHG)3 z@Un0eY-C7>a}$OsYU3(8u}Q|XnIY3Vc{i$}=NQ&(uJ62xc5IOvTgi1@gUr{K*XMN& z51@-7;gGXQ!x9Xed;9LUCb!w6;Xyn^DDiUn9-lQNbA6Yj&m9^bmPp4+rtJy^yTZr= z(5L4ddy&tWLd8z(*02Y?3>(N~(XUn=;kts1Z)*(b>lL(T1$#ql6iVUriR&d%^$gom z(T9B+_DjbdRYJfkdb~70?eG$LN+GM^AP!NWh9?~E*$x371{yF@sE_AT7{Fr+4r>_1 zkr4VO6$WLFyQjo;${k9XOLE0g4MWH=M6F=B8N@m~3Pzgpuf|jY#~9c?6~j2LVGMaf z&aIjT8Q;?gL&)nht=Kt%2?bATcnSrEjdzowV0mIzP_T(AcU(c;dzcHY7F3+Tw=_&* zio#pqrY}xkl^7Kov!QM-r{XluD0o`KSrnUM8n=DomLV1R3wtdSbX;0FCtaSGn;LI) zR9l!!;@h~W;F5-C@NAQx;*#r$3gK`2GNc+NloDrZ)KfZFXqVr`Wd&C>aLh1hVnJAE z9Gmu6aT)XyH%q?BJ#n6!?u27k>e12MzB=&DXEj&f;XR|0xv~s{!rtA;Sa>S#CoD~+ zX;#A=42G>0J}>gNRpQ$-1k-gD;PUn>THPTF$tk}wBb;e@(rKc?4NGQIi{$Mi_BRBFb&6L5eFZakcI4*_v+M|~ar_NJI&b@y7ij&AsF@Pn3OYZhyJ*U&$!|-U zU#IboIDVz#*Z7TscO)P0GVHp0!VPP|o)_8L{%dJ8!An%&mKfe?%*MK6ZOcz_t85B) z*Q9OF`_)_nW_2JMMw%8*FI7bg^+vKbp)H>(nIwYac@DnJ{ZHBhEfSw)=M?^CabzH}=iw)Ym;ha@okfLb{Xs7T_6 z_z}sZ+NRU86e(;=E0gKu)NQ0L-ol1c_3uzL6k?$e4+Z5m+ArQl=fy{FA$<#(p@g1T z!M3TO{RHV+Z~wj(bYECr|5A3hFGC+n)+KF7)swoqf=Be^-S=(G@&F3!}Ok>0ib8Do#rKdQ4Yi)IYU~>7XCi)p+B)qN|;9AXHdh zfA1q)(4(vP&MHc4xC*S`njDIULv}FqAwiqR70SzzeftT&7wJN73sAMtMW}8d zy>>#lgW67P#YSvLnshdic7`l$L4ih}#x`7lPWHOUVutMWkfko%KsRpE^W%Lygul?r zkBQpP>6!5bdHWZ3;Xl~TqS(W>lEoLuTM6nq8B8j8QNeKVPbp~pw*yN&FXWV+#7>Um>Po;0|VJA>At!B&7-KrLRVg-;NANM$*;M^mBvJ$Y3lo7;isH zi4Y{sP;#&2PSw>qcZZ}DaCc$_&S2^##=0}9D#4d2ECEmkfo}9kY1&SD7X8G zkpbf4F>J{3MWmikIoTn^NPKbmVRZ?W;li ZdeFWZv~LCNFYsH^RY~u6_yhg~{r{@N?q&c0 delta 480 zcmZ9IOHUe66vuyeWajc1kdAe53`UG$K`F(SzN9_@b)lFhO*AxV3{8n?MVhE_>xY=n z(6FWpNJ>(7U3A+I(M>-<-G~QtWzNn2JpbpMd;TWAg~GqDfBXc>Y<0qh5e<=NLG#q+ z83q5(SRwL)mzq~LuUYi}2U7llN=)o&-YD$Gd876AOSI|e9Vb-n6RGux?)Hh*`owG59!`(RV!#V@nW~QP7tTmuRCABJB=_5ce?vdj z#w(h4mR+oJDXOnGqMaOv02Qu=L;i@Z)3))f_ zm9=9cabY|ljYEzJ3OwX^30GRgg*YWtmje=f!sCc()`VUnI1q-ZS=W?DFQTOt?v`eL ZAa}6tr6i0J2wq{7G@0SWHl&lm<_+|fOPK%w diff --git a/evenProblems.java b/evenProblems.java index 2b8a565..083432f 100644 --- a/evenProblems.java +++ b/evenProblems.java @@ -1,5 +1,6 @@ import java.io.BufferedReader; import java.io.IOException; +import java.lang.reflect.Array; import java.io.FileReader; import java.util.ArrayList; import java.util.Scanner; @@ -34,7 +35,41 @@ public static void main(String[] args){ chargesVals.add(Double.parseDouble(values[6])); } - + System.out.println("Age values: " + calculateValsFromIntegers(ageVals)); + System.out.println("Children values: " + calculateValsFromIntegers(childrenVals)); + + } + + //Problem 2 + public static ArrayList calculateValsFromIntegers(ArrayList red){ + int count = 0; + + int Amean = 0; + int Amin = 999999; + int Amax = -999999; + int variance = 0; + int SumofSquares = 0; + double Astd = 0.0; + ArrayList results = new ArrayList<>(); + + for(int age : red){ + count++; + Amean += age; + if(age < Amin){ + Amin = age; + } + if(age > Amax){ + Amax = age; + } + } + Amean /= count; + + results.add("Count: " + count); + results.add("Mean: " + Amean); + results.add("Min: " + Amin); + results.add("Max: " + Amax); + + return results; } From 8e605da58aa3a1b4997ccf9c346740aff8016c67 Mon Sep 17 00:00:00 2001 From: Jayce Date: Mon, 29 Sep 2025 20:47:59 -0500 Subject: [PATCH 4/9] Add ability to calculate the standard deviation to the function --- evenProblems.class | Bin 3047 -> 3336 bytes evenProblems.java | 13 +++++++++++++ 2 files changed, 13 insertions(+) diff --git a/evenProblems.class b/evenProblems.class index 116643f9f88a027ea5a48744b6b25a6b51420f51..24e49bcb9894220863c5a3286d06bc99017a63b6 100644 GIT binary patch delta 761 zcmYjNO;1xn6g`7|Z|Jn8N%ct!1!{Bwgh@i;VHV~m6i%ci1@e;TXuat*K{aoq<-CSc zzDTPZvSRWo5ODyd{vF7iAOzzARheWk;{q-Uo_*6<+D6DYA2lcJ6GCtZYzf<7rntm6 zFsB_@?Wb6~Bphrxx7jA@lXUUhb9K~pPD!Khc!l#zL)nyHhn!pS4^NRNrTubH{bl?9vu@^J5U zncW4PE%K@Y&K0?4Dy+juF>r_Lg{Q zYkSmIZPhPRzP(xdu=Z)(xwtKUU%Ed5q;S*}_jD0N z8;X9+q9ph9a7Qr+4Jx%*Kvu}%o4W;5C8#kBK( z|2@G>E##dg<@!kQji+r#6`u&kc;+8VkL?oo0|vGQcJRfAuU?K_LjRmyu;W?VnTcnd z!os{P`+m_knJ{D80U;tEm=RewBSRJ5qZh;n&|_zyCIg|$YN)1wg=N&3D<^-5(prjk5Gmo)s3Ln+MT5sDbbYm8tMPvFJ43r(*1`zE;Q4ZJ}+-YR;B hI^P4l$QH+MC|y&!q4a~&O{Jf)$6mp{eSF6uLf4+oWvl=I diff --git a/evenProblems.java b/evenProblems.java index 083432f..3372c1c 100644 --- a/evenProblems.java +++ b/evenProblems.java @@ -64,10 +64,23 @@ public static ArrayList calculateValsFromIntegers(ArrayList red } Amean /= count; + //Calculate the variance + for(int age : red){ + int temp = age - Amean; + int tempSquared = temp * temp; + SumofSquares += tempSquared; + } + variance = SumofSquares / (count - 1); + + //Calculate the standard deviation + Astd = Math.sqrt(variance); + double rounded = Math.round(Astd * 1000) / 1000.0; //Round the std to 3 decimal places + results.add("Count: " + count); results.add("Mean: " + Amean); results.add("Min: " + Amin); results.add("Max: " + Amax); + results.add("Standard Deviation: " + rounded); return results; } From 1369665994ca1c14561c8951d8c291d3a9e52e0b Mon Sep 17 00:00:00 2001 From: Jayce Date: Mon, 29 Sep 2025 20:59:01 -0500 Subject: [PATCH 5/9] Create function to calculate percentiles from data in an Integer array --- evenProblems.class | Bin 3336 -> 4048 bytes evenProblems.java | 30 ++++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/evenProblems.class b/evenProblems.class index 24e49bcb9894220863c5a3286d06bc99017a63b6..cb03190f1199a4f9312f145b376aaf2954f5b8e5 100644 GIT binary patch delta 1419 zcmZWp`*Raj6#j0rk7ScHP1=>Fq_i>$O~#?pnJ%QEv7HvR(2k4`uqxP0yQZNrku=5U zOw>WbIJT%46+sazf~ch+nwEgIK2h)i;`>*}Kfpgg>bYCns%&Py`<-*oJvsM$XLncC zg&OVL<>C~8HvD!%+bK6FEn%|g(Xa(ixv&#?27lblZZI>wW-6OVnm1h zVcO$2NLSUg2iujFj@gq+%dOKE^PvR8F7#uB?~?;n!#+qLkOe50rMlmGf6OWi09>gIR-o&E}@_os4IwL$wkGSxba7n#pA}J2N?ZP{F zm%&E27iD(vCrZls@A7(flGiJbm8_`ak1MrqYK0j$Gm&V7n!t}L#=WN*+^uo5c6%&2 zWDYjfGCMwG@U`_Pl6@I7^>6=24EDD4P%3LheaxVCnX!~*e9EA7C1&~Og2x`R{AYPo zt?ahrD@xhWnC-7!P{!InPyWX1uk?RI{#94RdlY=9;Q}tI_+AKdiO1DT>?aGbP2%5_CA=iGU1t}Il6CnvEZ>>#pB5GRqR z1#$a5i;H*$C?K%O?+FyKdyZEZ@$4Mer6Qi2Gb+o9cz)h+6!F5m;Vk0CdBa`AOTzGq z%*UyjC05TzQO6b6)wxA5P=!?_&1x(|6V@Vvo3RF6XvS@bVk26x8Lf!XyWWR(()uRk zDPoxP*n@T0kM%f!P8`N9ly?KB=+s%5T_+D3a?tQD?4`?#zi$ax)AtF`C26{r1*t@&}2hya+ zL8&i4ur4@>H%1JZmct{4qRYB+5Z;h37jSe|-u!q_m-F$k`X8sKQjHIUbY&r|QXS|W z2Xg;3YbkwU0F&mdA3kh_9|NdG3d@m3BeqeyGS)rpV3*NoV+^x}7huDLb%jZsqBTlG s{w)o7(ZVwpPFXl@;U^Y;X5klvH4I-`#yJbW#t)Q4qXa+VXX>v1Z|rP3ng9R* delta 838 zcmZXST}TvB7>1vt>x?_Io3J^cx&9GGiX>%hrfHd48QPB)6%je*q8qY;e{>NFX=Z6< zO;%QBnPvYek=6!Lw?z^yj=TlR zn3~dh<7#}w(Cwj-9)Yp4GP~-S*DTWvwFh%p|0(^Ch(Rv1T#9!ruJZKVTOq3y1-Y~7;36-35NgOzbS|>Yi zIjUO%wK`~qo#3`WsSf?+V>UOBJNx5uh}t$YTyM72XOss!LS|d2*_I_J+}D`E{XpfR zJ?tSZ!!wb!f>471v11%h`}Ow$t3dxY>CdR?)hr;ec*dWoSMu5naD54a{4 zKKfIdiWharUev+R{q+HlA>YP;*H8>^T|k+za=n>5v}AWmgp)9he_yiOAK_G#r$*?F za>EtjbTmlPBJ@RrNqL+Y$D2;lt#97Uu2j~sfdV$No^lG=P7&1 calculateValsFromIntegers(ArrayList red int variance = 0; int SumofSquares = 0; double Astd = 0.0; + double percentile1 = 0.0; + double percentile2 = 0.0; + double percentile3 = 0.0; ArrayList results = new ArrayList<>(); for(int age : red){ @@ -76,15 +79,42 @@ public static ArrayList calculateValsFromIntegers(ArrayList red Astd = Math.sqrt(variance); double rounded = Math.round(Astd * 1000) / 1000.0; //Round the std to 3 decimal places + //Get the percentiles for 25%, 50%, and 75% + percentile1 = getPercentileFromIntArray(red, 25.0); + percentile2 = getPercentileFromIntArray(red, 50.0); + percentile3 = getPercentileFromIntArray(red, 75.0); + results.add("Count: " + count); results.add("Mean: " + Amean); results.add("Min: " + Amin); results.add("Max: " + Amax); results.add("Standard Deviation: " + rounded); + results.add("25th Percentile: " + percentile1); + results.add("50th Percentile: " + percentile2); + results.add("75th Percentile: " + percentile3); return results; } + //Calculate the percentiles + public static double getPercentileFromIntArray(ArrayList carbon, double percentile){ + Collections.sort(carbon); //Sort the arraylist in ascending order + + //Find the rank(Position in the sorted list) + double index = (percentile / 100.0) * (carbon.size() - 1); + + int lowerIndex = (int) Math.floor(index); + int upperIndex = (int) Math.ceil(index); + + //Find the values between the two indexes if necessary + if(lowerIndex == upperIndex){ + return carbon.get(lowerIndex); + } else { + double weight = index - lowerIndex; + return carbon.get(lowerIndex) * (1 - weight) + carbon.get(upperIndex) * weight; + } + } + } From 4439bae87570f3135b130fc22c07ead67710a1ba Mon Sep 17 00:00:00 2001 From: Jayce Date: Mon, 29 Sep 2025 21:06:38 -0500 Subject: [PATCH 6/9] Create function to calculate values from a Double ArrayList --- evenProblems.class | Bin 4048 -> 4903 bytes evenProblems.java | 57 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/evenProblems.class b/evenProblems.class index cb03190f1199a4f9312f145b376aaf2954f5b8e5..664d57ce536ab37e2b256e1f917d6690403ef6a2 100644 GIT binary patch delta 2032 zcmZuyX>=1+6#ib5%%qcPO2ed`K!GAs(x4znkttB@0#cxYq96)LNJAPL8c5TEr4W!} z1qGC0DY7VQ5tLO+2qM%46h)D`fcw7Se*ED%9Hicv(nXH*R9q^O~++ptocc5%UC^#!WSUx@AEwdpGJ{t`1 z8IYJe%+U15@dg3IF;B!ps8suzI$El*fX6}+5iC;2nq1~8REt=ON7TipRBpM5$MCqi z-83d*#A*@6P#Nsbf{ZaU-4*V>0e7jd@Az=YU+Nodg9)o`;56VhFr!x6utD39|GyjJ zQEP*sfd#c(PM_+96d$;TYl48W*d}5-b}(3OF47~S_{zNu24_aTb|7u#G~iJy;92b9 zu~)=%cwU{%lqg29kxIU*veS&Sa9KOoRGVj_;= zCG`U5XRoTcd=OAt|re9rAh0+MC~JFy{r!OT)Uq4;lDEue(%NE--L~{$}}OhMruZd!GK` zQ%daku)DO#9V$x8_g47bVSliB-RJ6NbBg0jx>n{b;o`J$-jK&z8ukag`o^!-vu4@) zt$^?FJ&zx>BK@fTWo|V7Ozzcg@jW>nzcO?sv8&oqkaA6+oKd0~j#GWQ(3{cQ=#m4_d}TIFhwyt3Qr7WKs{z^CcecKR_9xK z@S3v{zKf+MkW z3{Ps;Or7XROpRepi`*rKwJoyU7{j_2MeY#8`c@@AhNoH;OAL{Xty)41n_83u6k42~ z!)6( zQ)o)K=}QqtP;m=TgHc$4(IY5=G1y2;x8P3f!d=*hyXoM2ahkTB!$e%fBx1$=_!AG{ zA53Nfrmz%DWjEqM)(_KIHm0LNjaUanUehoAI+dFy5M5ZSfK261r3wr-46znS*sK^O zJgsn6#cWjst0Gzzt5xY>Rcyy#nREmRS(2+BeX{Hh`%&~~*nmt;8pMb{W9zY1Nv>wh zDJOdh*uGMt;rPz;0iRjC43QyoX zvHlWP<8PYwMyz2;Sj)O%9qWztY!H=+dND#Q<(dc*cvzUB&5SukVbCw7nK9T#Vg-^RFslY8BrWwInYF}`jrDYyUETy zgCv*TRF9)4F+5U_xi$MU?4}x@!nayAW1`IaN?dlXd7WmF`4Z25ovzwwxq*I6paw8v zD{K_L13M^rb?AlN)Mb09qxR~<#te29nFhwLUHmltMc>f9yooc^VboG0zM(<)mX2q2 od{@W!bZpe|106ro@uH5O==hnAU+DN1ej>*L`MQK(@EaWe0x4(C&Hw-a delta 1254 zcmZvc`EyfM6vsceSzhvzv@|v}g(5|zw3%_bNUJSStp&8$j?AEd3rePawjr6srfESy z;$DZbb$Q?hGKdQ9ZAD{^P{9qw4Z(fd zu5EtS&pxXOXMb$7VU_;8pBLDoaNU+jrP7w?fS(sFkF(2&C3Jke?B^9;HJ58Kb{^knh;jkju)*DN7r;X%4{qKopZK;7|#@=;Qp>-P3q)k3h zxI1I#?2jxvy2OPf(^$nTcij_vX%ScKmhW+(3@i)}|*Z+li$Qv&FO6LS$ zYn-&SJ7xarJ>~pPG2blI=Q}ihFn`e-d`_fe(O2=BInOt9-s>`Ti-9gmjxuI_fr2vG zSQq+P+VN_@#zLCY3f%2U-Q|3oEmOOLS*uI&M)dtY_TZU9>R!rd{+~GDLZGQm{-w%6AKg^^pmlTu{QER3yh< zXZKKiMfC*FjWoJs*+0_g4!J_^y%a}6t{g8NVOfs!&}enYHPq9j{mWSt)_UTRko)g# zVJ+S@3faFDyFeZ#7@}4$K{ilEoC>)%3rLApeWFX+zB(S%85$f)ajx*3`~u##TbSS- wSzF{jekpe`Z{r~wCv7}p calculateValsFromIntegers(ArrayList red return results; } + public static ArrayList calculateValsFromDoubles(ArrayList blue){ + int count = 0; + + double Bmean = 0.0; + double Bmin = 999999.0; + double Bmax = -999999.0; + double variance = 0.0; + double SumofSquares = 0.0; + double Bstd = 0.0; + double percentile1 = 0.0; + double percentile2 = 0.0; + double percentile3 = 0.0; + ArrayList results = new ArrayList<>(); + + for(double val : blue){ + count++; + Bmean += val; + if(val < Bmin){ + Bmin = val; + } + if(val > Bmax){ + Bmax = val; + } + } + Bmean /= count; + + //Calculate the variance + for(double val : blue){ + double temp = val - Bmean; + double tempSquared = temp * temp; + SumofSquares += tempSquared; + } + variance = SumofSquares / (count - 1); + + //Calculate the standard deviation + Bstd = Math.sqrt(variance); + double rounded = Math.round(Bstd * 1000) / 1000.0; //Round the std to 3 decimal places + + // //Get the percentiles for 25%, 50%, and 75% + // percentile1 = getPercentileFromDoubleArray(blue, 25.0); + // percentile2 = getPercentileFromDoubleArray(blue, 50.0); + // percentile3 = getPercentileFromDoubleArray(blue, 75.0); + + results.add("Count: " + count); + results.add("Mean: " + Math.round(Bmean * 1000) / 1000.0); + results.add("Min: " + Bmin); + results.add("Max: " + Bmax); + results.add("Standard Deviation: " + rounded); + results.add("25th Percentile: " + percentile1); + results.add("50th Percentile: " + percentile2); + results.add("75th Percentile: " + percentile3); + + return results; + } + //Calculate the percentiles public static double getPercentileFromIntArray(ArrayList carbon, double percentile){ Collections.sort(carbon); //Sort the arraylist in ascending order From 9188b156193b7d58aea5d7d7b7c4834f114c89a9 Mon Sep 17 00:00:00 2001 From: Jayce Date: Mon, 29 Sep 2025 21:10:14 -0500 Subject: [PATCH 7/9] Create function to calculate percentiles from values in a Double ArrayList --- evenProblems.class | Bin 4903 -> 5248 bytes evenProblems.java | 32 +++++++++++++++++++++++++------- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/evenProblems.class b/evenProblems.class index 664d57ce536ab37e2b256e1f917d6690403ef6a2..d9396724cbff3ce0271096150107859f18c822ff 100644 GIT binary patch delta 1244 zcma)5YfMvT7=B)9&uI^b0!?dL#mF>@G#aNVBxqs+h>2uu#y|ejSn9DfbTk$aWtwXI zL86G4&$}ebvdPp>l5rZf1YM=KR*|p{XJkaMfuLXM^ZNs;5|wdQ zRdjB}>ywa-4jG*|#}J7DuI-(iuh2F}12AO?oFtQdyUhoDXCEufDu6FsVmC8Ap zWWX(gxvRF!3pbV_r7<$BJ?@9V#_cB9Sor-Y|?CgLv{ zW%!#78gJ|VB}`!^X-bla7i>VvNfy9+#T!iMVjm@swRZDsQW+q@i1WChI-yUJJw)B? zl>9|%54YTq-e4h&A}+FdDN{*B8(W_;nYuzvDT~#quT0IF9!AZX(jF4_cU3qbK1mT8UJs;W{as{j2DjY_-!>SLXy$eNQ)YP?PTlICG zJTXB`wTYf`hgBGvW)sWZEr5<6+08bZvx4fa8bGg+lSG7AtUextKhdFBhlXM;{jgYR z!wEhMqv_pLs+JHcs47FD)J#0hB%TLoMe4^oR{8rU>LHGy% I;eXiQ0w6U+rvLx| delta 899 zcmZWmNla5w6g?0AK!1NNEmVpEAu-rccch@g!U)j>k|xHD3m1yzTN;`+DWC?8uw$Vi z>QlsFL5zqqRJ34~3J$1<6FATFfC>v^OiV=Ie~pN7bMCq4zIX3^=QZTE&sGK}qA>s^ z7!ND^r3@=Xv{)hOAfrXWAsm)*M8#1YqhF=s!mx@Hs3Q=neRZ0G4LGUd6dDM`)&5{G zq$}MjdUQqbXgzCWC9i5P@l-SIb^g?yuFV3$sZQ zZV*^YDt-QnkQSJ#-(p9L-KA5dVcKAr?z%&eR1&NW)bQ)~2xPZb9^lCX0?F-*^G7-_ zU&r+)bkHy({TZ8-mtRwvy+jLnv_Or|ukq>&`qPl+c*Ux7|EroMyixEL?_|7JQHc+< zNEsoYsM+Wgz7S;5Rwa#YRAjo`m|7r$8N=Kp=w&8nvPf7Io!uZ|MhJB8^)jHqfOF_$ zytk{(=p`gZO{Vqcepd28`Gry#WSplllbv>$rV*VLk>0K!rltB(x4E74({E;1=0$cP z0hd^}5LPk91}E6r5*ch<5nY@-KpmFMnQcG>8OzdB?Lrg>CKD-&cDllnmKVkDNijK! zJ(GzwioJi5PCiP1LNjvckfnOo77Sx6MzIawL5YCv#DX0p3(aH>c9MD6g?<{ay6WRg z4zMLRVRL**>|;h4Sg)1N9vpO};&{**L8nmBSXGwWgRZ6mk%dT8fn*bHQY$P@n;60A zJ}io0ZDU8SO>Feem;VvXcG+9yv`K%D+2txv2OzMKF`AR&sMqaH0+~R5A|Z&cbs34c z!k=~(gDjRo#cTF2*EnA1c$4F8jw2lJa=g#+A;-rYpK^T8@g+X8ehTX~iq9BB`fqzd B calculateValsFromDoubles(ArrayList blue) Bstd = Math.sqrt(variance); double rounded = Math.round(Bstd * 1000) / 1000.0; //Round the std to 3 decimal places - // //Get the percentiles for 25%, 50%, and 75% - // percentile1 = getPercentileFromDoubleArray(blue, 25.0); - // percentile2 = getPercentileFromDoubleArray(blue, 50.0); - // percentile3 = getPercentileFromDoubleArray(blue, 75.0); + //Get the percentiles for 25%, 50%, and 75% + percentile1 = getPercentileFromDoubleArray(blue, 25.0); + percentile2 = getPercentileFromDoubleArray(blue, 50.0); + percentile3 = getPercentileFromDoubleArray(blue, 75.0); results.add("Count: " + count); results.add("Mean: " + Math.round(Bmean * 1000) / 1000.0); results.add("Min: " + Bmin); results.add("Max: " + Bmax); results.add("Standard Deviation: " + rounded); - results.add("25th Percentile: " + percentile1); - results.add("50th Percentile: " + percentile2); - results.add("75th Percentile: " + percentile3); + results.add("25th Percentile: " + Math.round(percentile1 * 1000) / 1000.0); + results.add("50th Percentile: " + Math.round(percentile2 * 1000) / 1000.0); + results.add("75th Percentile: " + Math.round(percentile3 * 1000) / 1000.0); return results; } @@ -172,6 +172,24 @@ public static double getPercentileFromIntArray(ArrayList carbon, double } } + public static double getPercentileFromDoubleArray(ArrayList carbon, double percentile){ + Collections.sort(carbon); //Sort the arraylist in ascending order + + //Find the rank(Position in the sorted list) + double index = (percentile / 100.0) * (carbon.size() - 1); + + int lowerIndex = (int) Math.floor(index); + int upperIndex = (int) Math.ceil(index); + + //Find the values between the two indexes if necessary + if(lowerIndex == upperIndex){ + return carbon.get(lowerIndex); + } else { + double weight = index - lowerIndex; + return carbon.get(lowerIndex) * (1 - weight) + carbon.get(upperIndex) * weight; + } + } + } From c1864a0bf6213b5b4ce1b33e00c0e9f6323ac48b Mon Sep 17 00:00:00 2001 From: Jayce Date: Tue, 30 Sep 2025 23:47:48 -0500 Subject: [PATCH 8/9] Create function verticalHistogram --- evenProblems.class | Bin 5248 -> 6025 bytes evenProblems.java | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/evenProblems.class b/evenProblems.class index d9396724cbff3ce0271096150107859f18c822ff..4a7b3108e77f61632485c51e22ae2a1333e50e27 100644 GIT binary patch delta 2772 zcma)8Yj{-E6b#85<@6 z!Ddp8rh-uERlpJ}#SbY~8v-T75hJ$!sHIeC1RwaIJ}7;OP-`D4kgj`Yh7j$K&X0Ze z+3W0c*V*grd#Ba+;CS27%gJ5Q+YVU`7_idWtT}c%s^(Qevp}X zT}f=eGO;G{!z&Ye5{W0S%(9c%k(un}(X#Xs?ZjC6H*j_n4^zU1n!xgu!hwm%!6Y6p zfZ>>o5tza%Pemch_%4}_TQCDvn29AQM>Q&NJEK8-6}3d_F&FKahmEMZ8INE-`7I!= zg?Ng~e~Meti>3G#zJ}xYI^M!EoWX6lz%4Fexv=3IVmMZaF$jtquu_z9%hT#-&Jy1T zI_VFoW+PUTu%ad2jzne8*$J*XQxmvhIf+_d%U4I|%UmH4bKc2(`RIDAHSkIGfz!7Z1t6cFW9>)9l zK0byjOn5}N@u>I`wuo{3ILyX2u^f+y)zn<;pYbpcKy7x9OQh8Mh*bGKNvVgO>`*IL zt?>7t^Ew3wV*YL%G}g8^%<=UgxvA8|;e}15W{=5Z-hmvy$JC9(hcUYw>)Jbg9#eZ= zKpGNsdZoGszsEed%qun2bb`lA-S;o^y973Zk;ijm7xH+-0_?$cc$zo=8Q$<`b>bF? z%a~vg0x9BWNR%I+H1Q|W#Bcxqh`aorM2h)>ZtVIzaV<84w-!j#9>RJbSsx(lgJj)9 z*3XmmA@*!9d-KIX)+K|i|3KFKo4{QXTDLg4fr;I+*kwCpo5xxgSB-lPHwp@tOJ|b6 zVQ3GZ<8y4?4v$a4FSm6dyU1``v2n$M-8iR3(#R1VF{Y6dM2@79mvzLHMv_Ec-nu=Z zZ+BFO%xP!`p`+=f%{n5bkq3xuP9w*3#F9oLM2->3<@gE_N0BSD-6AcNhK{G8%zmZ5 zgo5K~tS^OSb{xsHK0?Dd9@zFc>_skX>S3498m8qJ_3lKWp=?x9e(_G^?88#`iEg~! zW)Qmv&T-a_x7xDkpVGcMsVl~h2>oBP(!Zfd$54#lVp0OHumNAiV!rfN;&<%VKDOR# zY_SvAf|IiNSjsV^jcDyG>;*^KE9Nq`2!GaZK@nV+V3TlG!c7-(y&;dkMBa!IBl-H1fUeN8Qy8TSI|J3cjb^9OPUefJ=X8F^sf!qPRjjk*l I!iBv50yRvCMgRZ+ delta 1958 zcma)-dt6gx7{`Av+s+whhi$Ag8HU8C`l#E-Qc0*OVxU-PsO2Xu^EP3^f|$Vo!^<#H z(!9T3Fe{V1mF49_4m_!8c_}M3yJ>eTEiFs)@3iNf0R#W)pXWT!d)x1QzR&w?QQtbZ zbmE435WrAe-y`Lk(hacX4l&%kdf>2xJj|5w9BLWNf%4EeUs;u(!O+{CFJU(3h?pxQ zj5^+8@|b6%Ud93}@5tDzUB*}$sP$`CXpzy1ItJ79vS6@68&PGvtBn{7{ed!x z1RaoZ5byErVk+-%9?6b1&oQSnelb2%In9ueQ|wQx*3wcrFpZgUhWC?_!e7utZb5$M ziLV$EhnDy%iv5+HhtE=ChX$+4L;CJ-7{mg;NDyIIb};ctG~;x^$LLn^;wN#&Wck}H6+Ln&oAL`-_nm(kbcX#v|q4#Q!x z+BAq@Jl@9#|oe$%Ir*M*;TCT2;x<| z)Dc)zgg10V2`XN04|dbF;`F36p*Q(`De6y`NvDduj}kHfR%9R%nRLDTk%R}(9bU@o zK=ecwy|=-57}+Sm5RAox7>8U;qL=BTnIa4)RQYJY2rR|O;dFyXuz{Aoic#2#N3j!+ zQK>$TTo?Tz@vES* zIGtZ1@k=2BwT3KfzJgc0Mg<#rW}=sE;xiJ5lWj@VAjmGc3j}8r!WOSJ3So+4mO{lv5Z>qr1Ql;~1kM-{#bs3xj?s_dQC#+}C%2PQT#l|2?bMW8 zsZFOOln}K5rQ~TMR!YRmh}bhktel7iiP#LJA^a@ds3c?|j6@a2Pujw-tVNA4k|_?Ho-wxOvYx)&^GiUvKhoM3p;e-X0RK`Ffc}is=bvHB$T>$ zoA8Zo!YBPd;dYNR992F#f=#yy*T%Z&)&|;ScTv5YR5z3Ay`(xqs`rsH#s;AH#r8bp5_hagv-7kntP!zEisWOt+uw_DkJ-I<8p4aU!y1hXB OwQkDr7p~$TB>xAK9Lh`p diff --git a/evenProblems.java b/evenProblems.java index e39e209..f728966 100644 --- a/evenProblems.java +++ b/evenProblems.java @@ -40,6 +40,8 @@ public static void main(String[] args){ System.out.println("BMI values: " + calculateValsFromDoubles(bmiVals)); System.out.println("Charges values: " + calculateValsFromDoubles(chargesVals)); + verticalHistogram(bmiVals); + } //Problem 2 @@ -190,6 +192,47 @@ public static double getPercentileFromDoubleArray(ArrayList carbon, doub } } + + + //Problem 4 + public static void verticalHistogram(ArrayList green){ + + //Count the number of times a value occurs in each range + int[] ranges = new int[10]; + + for(double val : green){ + if(val >= 0.0 && val < 10.00){ + ranges[0]++; + } else if(val >= 10.0 && val < 20.0){ + ranges[1]++; + } else if(val >= 20.0 && val < 30.0){ + ranges[2]++; + } else if(val >= 30.0 && val < 40.0){ + ranges[3]++; + } else if(val >= 40.0 && val < 50.0){ + ranges[4]++; + } else if(val >= 50.0 && val < 60.0){ + ranges[5]++; + } else if(val >= 60.0 && val < 70.0){ + ranges[6]++; + } else if(val >= 70.0 && val < 80.0){ + ranges[7]++; + } else if(val >= 80.0 && val < 90.0){ + ranges[8]++; + } else if(val >= 90.0 && val <= 100.0){ + ranges[9]++; + + } + } + for(int x = 0; x < ranges.length; x++){ + for(int c = 0; c < ranges[x]; c++){ + System.out.print("*"); + } + System.out.println(); + } + + } + } From bb09ed9390f577e991fcefa2f763d0430aae7ee6 Mon Sep 17 00:00:00 2001 From: Jayce Date: Wed, 1 Oct 2025 01:24:07 -0500 Subject: [PATCH 9/9] Complete verticalHistogrem function --- evenProblems.class | Bin 6025 -> 6310 bytes evenProblems.java | 51 ++++++++++++++++++++-------------------- tempCodeRunnerFile.java | 28 ++++++++++++++++++++++ 3 files changed, 54 insertions(+), 25 deletions(-) create mode 100644 tempCodeRunnerFile.java diff --git a/evenProblems.class b/evenProblems.class index 4a7b3108e77f61632485c51e22ae2a1333e50e27..cb1377fb4e1723a9514c0174877fec688b27a31e 100644 GIT binary patch delta 1956 zcmZ8hX;hSD6n-uYSwW{b2oF>v|Q2@OYku7C&Rw4S-1px1eJiD^i)r73 zE!zQPNxO}vt%ghkb_qf!IVv0}<({JAl;LitGsjVC!cOQ^@vQ}W5hpO`m$*ERB3Ic! z=M2^Uodw@uzaTzAS!<3}7WoO~4a17rI0xBHE<<2reR6?RJMI)0{Qe4cOq7qkz37_K!3r^r9!KXN;3+&C{|BqDW z`h{1j;HND(gR=ym?3|J3B%RRzfYX#=#(AU|a6u6C=m_XA;v&n~>^2i7<0lJ#Mhk&| zsk_KU*A>-e(_Ggqa3R2m>jHg;)B@Ui<5vrA2ICg%zFgv-;$YpL3CePF7iFO_Q0Z#S zmfve;8&gFmNLGdhwo%Rm_KgsbLBEMko9`TY*~BP*N@r7KrReF&%*lS-6Tnuo3LWl= z&a%hNMu9P_q}=7v(oF(Gj?>}N{#eK+r^u&URoyXNvxf*G@;nY#fx}&3d&XH&_ES0KjCSobA z&>@&%A=E`z09{G=? zm8n9iy=aW9&GL7jOz=ahd6NFb<7) zNlX~eRvgkE6Qm3BT~L{w1ts!6&qN?6{+GnRFmvlbi_IiW<3Y6L7S-&@&IW%5%^Bz zKC#v{W97DRX^ZE>sv(w_Shd93OsuWM+QvbD#ewd4gw^d4Rz0z%@leQ%>%Emr8^CYN zFR^pXChQ($_o7oy@@Aw8R$v5`9zvj8FFqNNSc@%hr~4;GRQlIqfERmKpnXz=s{5oD z`*xte7qj%^HUEK8)d=;u^bZY9pC);6q!!10k$qY}6|)j!X*;zU=LEg<(fa1v8LFlg zS0UB1zN)NIsaj%I!TJS8h5hKorD~W}^|GoqeNEMitMheD)lF6ZA`gDD88?Z_BUrtf z_ltfT{Kn`aRF-+QxS_!u^}(o*fS>jVj6?+Wy&PfXeqPRlP`5iBM|h==af6R@txj<1 zPIJl5;3J$x4KMI^T;LjAWZEUJ(rHFr=1i|h5UxrHu1O?rXjAGAOCy2|*l9r5Mr7;c zK7#7u*N9+|23TorK)Te!Kx6%Em>bj!-?bi{n>XZdK0pl`)kZwvcK|HBV}d4C@~29j kCjB*O&}5({&6*6-WUwYfH5snS2#Fz{iTSZ&leUQd2S|C%Qvd(} delta 1806 zcmYjRdr*{B6#t#wWp`P2VOaqM6-gbGU8O`&^MNQhh60K@YWavoc7()5S5SM5+rvlY zB-!VKMr#~RoE}!nh-HdR)0mN|`AkvqnWafu*@F=K?YG~Ket(>MzVo~HchB$Kb8l_G z*B-Srw(n^GkS)Q++vSU*%v-gF4f%)PZP5VKMQoz za+RTmPRj6zyjZjdY$IlSk`}tlt2_$^Cy5!il}!{7RHwr9b^ z;lBjt?20OHrMmndfhphP_NqUv0%Lwz&~FR)?!{`nT@X95((NsA`%02>JPXU*m1Py` zG)jacEknt$I^uP7GajofO&ag<&GL9F%gQ~0)nZVJteql_7BNwhgj-Q67G=5hxY(4Z zY)(UzAW@lNOH^uYiG7+_#jfNOj$zK-kR5ac=V*;;(1LKB#|8RLb+>Kh;txR2A(7Sw zJt8?Riq?*fh(;0|NI?grAr{$)LoTC*=!7YVM-e)sl<_6p?G?OeGJ zkKlWB=Vm?7f}Xg8WHF$ZbVP4)B1MM5B_q+-j%IE>3zqw24>#eWax*GfE-DWD5NWC_ zuulkPxEZ}Utsivg4+GL+LIxr*fSC?to`VpB$C=w;Bwz^h8H!|NVibns31lH3BQOyo zF&R0S!KfRfQ9`5?W3d8xc!M+6pa2^%4)0<-YB~F3OhN;7euJq_9L1A3gK4;i>69@8 z_b^i|c$!j*q$k|c55#mi8Pbjny$FI8 zxkj!JHLm@!UbXRpTsz6Ni(I?O^%=RoAlF_Vasv-@{{yb{2V6gqYY_{=yjbigt`B3I zPq16|TJoIrNX_r_InsoJ;^+(#e2H=O*g7U9a{UIxro`aunvH(gT>9y$hN5xX&=Lq~ z(1DtbL<|~og2(|4IjACG8nTDTK@DkC5u=7|BGRZKt5w9LA^D*}3arWQ|tiwsR$tiq_)7ZoIYvd(5iL<;$O}GvJIRVZ~1TIKt zG)oU$mSkL!R9uyTxF*9nj>2^r%UB_9s9oTK{T?hPTsNVA8~W carbon, doub //Problem 4 public static void verticalHistogram(ArrayList green){ + + TreeMap Tmap = new TreeMap<>(); - //Count the number of times a value occurs in each range - int[] ranges = new int[10]; for(double val : green){ - if(val >= 0.0 && val < 10.00){ - ranges[0]++; - } else if(val >= 10.0 && val < 20.0){ - ranges[1]++; - } else if(val >= 20.0 && val < 30.0){ - ranges[2]++; - } else if(val >= 30.0 && val < 40.0){ - ranges[3]++; - } else if(val >= 40.0 && val < 50.0){ - ranges[4]++; - } else if(val >= 50.0 && val < 60.0){ - ranges[5]++; - } else if(val >= 60.0 && val < 70.0){ - ranges[6]++; - } else if(val >= 70.0 && val < 80.0){ - ranges[7]++; - } else if(val >= 80.0 && val < 90.0){ - ranges[8]++; - } else if(val >= 90.0 && val <= 100.0){ - ranges[9]++; + //Round the value down to the nearest integer + int intVal = (int) Math.floor(val); + if(Tmap.containsKey(intVal)){ + Tmap.put(intVal, Tmap.get(intVal) + 1); + } else { + Tmap.put(intVal, 1); } } - for(int x = 0; x < ranges.length; x++){ - for(int c = 0; c < ranges[x]; c++){ - System.out.print("*"); + //Get the max value in the TreeMap + int max = Collections.max(Tmap.values()); + + //Print the histogram + for(int i = max; i > 0; i--){ + for(int key : Tmap.keySet()){ + if(Tmap.get(key) >= i){ + System.out.print(" * "); + } else { + System.out.print(" "); + } } System.out.println(); } + for(int key : Tmap.keySet()){ + System.out.print(String.format("%2d ", key)); + } + System.out.println(); + + } diff --git a/tempCodeRunnerFile.java b/tempCodeRunnerFile.java new file mode 100644 index 0000000..c837fe5 --- /dev/null +++ b/tempCodeRunnerFile.java @@ -0,0 +1,28 @@ +//Round the value down to the nearest integer + int intVal = (int) Math.floor(val); + + if(Tmap.containsKey(intVal)){ + Tmap.put(intVal, Tmap.get(intVal) + 1); + } else { + Tmap.put(intVal, 1); + } + } + //Get the max value in the TreeMap + int max = Collections.max(Tmap.values()); + + //Print the histogram + for(int i = max; i > 0; i--){ + for(int key : Tmap.keySet()){ + if(Tmap.get(key) >= i){ + System.out.print(" * "); + } else { + System.out.print(" "); + } + } + System.out.println(); + } + + for(int key : Tmap.keySet()){ + System.out.print(String.format("%2d ", key)); + } + System.out.println(); \ No newline at end of file