關(guān)于重復(fù)瀏覽的商品不會(huì)重復(fù)出現(xiàn)在商品記錄里面的解決辦法
public?ArrayList<Items>?getViews(String?list,int?j){//多傳入了一個(gè)int?j是為了保證最多顯示規(guī)定的商品記錄個(gè)數(shù) String[]?arr?=?list.split(","); ArrayList<Items>?itemList?=?new?ArrayList<Items>(); //遍歷數(shù)組添加到集合中去 for?(int?i?=?arr.length-1;?i?>?0-1;?i--)?{ //如果集合中已經(jīng)存在相同商品了就先刪除前面的 ????for(int?k?=?0;k?<?itemList.size();k++){ ????????if?(itemList.get(k).equals(this.getView(Integer.parseInt(arr[i]))))?{ ???????? itemList.remove(k);//刪除之前有的相同商品 ???????? j++; //因?yàn)閯h除了一件商品,所以需要j++ ????????????} ????????} ????????itemList.add(this.getView(Integer.parseInt(arr[i])));//添加對(duì)應(yīng)的id商品到集合中去 ????????j--; //成功添加一個(gè)商品,j-- ????????//用j<0其實(shí)添加了j+1個(gè)商品去集合 ????????if?(j<0)?{ ????????????break; ???????} ?} ?return?itemList; }
總結(jié):
1、通過(guò)傳入?yún)?shù)j,添加商品到集合就減一,刪除商品到集合就加一,如果j<0就直接break跳出循環(huán),不再添加商品進(jìn)集合;
2、用兩個(gè)for循環(huán),判斷前面集合里面是否已經(jīng)有相同商品了,反正只要沒(méi)到j(luò)<0,外部循環(huán)每次肯定是要添加商品的,內(nèi)部循環(huán)并判斷是否之前已經(jīng)有相同商品了,有的話直接刪除之前已經(jīng)有的;
3、本來(lái)集合循環(huán)比較是否有相同商品可以用foreach語(yǔ)句更簡(jiǎn)單,但是就是不行,我也不知道原因,只能用這種原始的for循環(huán)語(yǔ)句;
4、添加商品時(shí),getView()方法是之前創(chuàng)建的獲取具有指定id值商品的方法;
5、互相交流學(xué)習(xí),有更好的方法歡迎大神指正。
2018-11-15
J的初值是多少啊
2018-05-24