arrays - Java how to calculate average of an arrayList that some elements removed randomly? -


i have arraylist<integer> , arraylist<jlabel>. integer holds moneys integers , jlabel holds same values strings. want remove randomly elements both labels. example if 20tl(tl currency) removed in jlabel want remove in integer arraylist too. it's simple. want calculate average of remains money in arraylist. here arraylist shuffle 0 23 numbers. therefore remove same element both intlist , jlabel list.

arraylist<integer> numbers = new arraylist<integer>();             for(int n = 0; n<24; n++){                 numbers.add(n);             }         collections.shuffle(numbers); 

then here both lists.

arraylist<integer> money = new arraylist<integer>();             money.add(1); money.add(5); money.add(10); money.add(25); money.add(50); money.add(100); money.add(500); money.add(1000); money.add(2000);             money.add(5000); money.add(10000); money.add(20000); money.add(25000); money.add(30000); money.add(40000); money.add(50000); money.add(100000); money.add(200000);             money.add(300000); money.add(400000); money.add(500000); money.add(750000); money.add(1000000); money.add(2000000);  string[] para =new string[] {"1 tl","5 tl","10 tl","25 tl", "50 tl","100 tl","500 tl",//create array moneys                 "1.000 tl","2.000 tl","5.000 tl","10.000 tl","20.000 tl","25.000 tl",                 "30.000 tl","40.000 tl","50.000 tl","100.000 tl",                 "200.000 tl","300.000 tl","400.000 tl","500.000 tl","750.000 tl"                 ,"1.000.000 tl","2.000.000 tl"};         arraylist <jlabel> mylabel = new arraylist<jlabel>();         for(int i=0; < 12 ; i++){             jlabel holder = new jlabel();             holder.settext(para[i]);             mylabel.add(holder);             p2.add(holder);//add label panel          }              for(int j=12; j<para.length; j++){             jlabel holder2 = new jlabel();             holder2.settext(para[j]);              mylabel.add(holder2);             p3.add(holder2);         } 

here removing style.this in actionlistener method

  private int asd = 0; /////   code      mylabel.get(numbers.get(asd)).setvisible(false);  money.remove(numbers.get(asd)); 

when try remove money in intarraylist calculation method not work properly. because example if numbers array's first element 5 50 removed. , arraylist shrinked. after when numbers.get(asd) equal 23, there not 23th element in int arraylist. because shrinked , has no such 23th element. hope can tell problem well.

ps: i've tried use array instead of arraylist. can't calculate average of lefts. because array doesn't shrink when element removed.

i make lot of changes code. one, try create 1 collection of values, don't have fiddle making changes parallel collections, since know reduce chance of errors. this, i'd use jlist<integer> , populate model, defaultlistmodel<integer> integers. can display turkish lira using numberformat currency instance set turkish locale. example if create model so:

// constants used populate model private static final integer[] values = { 1, 5, 10, 25, 50, 100, 500, 1000, 2000, 5000, 10000,         20000, 25000, 30000, 40000, 50000, 100000, 200000, 300000, 400000, 500000, 750000,         1000000, 2000000 };  // locale turkey used currency private locale trlocale = new locale("tr", "tr"); // currency number formatter turkish lira private numberformat tlformat = numberformat.getcurrencyinstance(trlocale);  // jlist's model private defaultlistmodel<integer> listmodel = new defaultlistmodel<>(); // create jlist model private jlist<integer> jlist = new jlist<>(listmodel);  // elsewhere in constructor     // populate list model array values     (integer value : values) {         listmodel.addelement(value);     }      // set jlist's renderer render numbers turkish lira     jlist.setcellrenderer(new mycellrenderer());      // add list jscrollpane , set how many rows visible     jlist.setvisiblerowcount(10);     jscrollpane scrollpane = new jscrollpane(jlist); 

the jlist's cell renderer change value holds, here integer, string representation turkish lira:

private class mycellrenderer extends defaultlistcellrenderer {      @override     public component getlistcellrenderercomponent(jlist<?> list, object value, int index,             boolean isselected, boolean cellhasfocus) {         string textvalue = tlformat.format(value); // format integer currency string          // pass super's renderer         return super.getlistcellrenderercomponent(list, textvalue, index, isselected, cellhasfocus);     }         } 

then if later can remove selected values list in button's actionlistener , have call method calculates average of items held in list:

@override public void actionperformed(actionevent e) {     list<integer> selectedvalues = jlist.getselectedvalueslist();     (integer selectedvalue : selectedvalues) {         listmodel.removeelement(selectedvalue);     }      // method elsewhere iterates through listmodel, calculates average     // , displays     calculateanddisplayaverage(); } 

it so:

enter image description here


Comments

Popular posts from this blog

Command prompt result in label. Python 2.7 -

javascript - How do I use URL parameters to change link href on page? -

amazon web services - AWS Route53 Trying To Get Site To Resolve To www -