关于重复浏览的商品不会重复出现在商品记录里面的解决办法

来源:8-8 使用Cookie实现保存商品浏览记录

那个怪蜀黍是谁额

2018-05-24 23:01

public ArrayList<Items> getViews(String list,int j){//多传入了一个int j是为了保证最多显示规定的商品记录个数
	String[] arr = list.split(",");		
	ArrayList<Items> itemList = new ArrayList<Items>();		
	//遍历数组添加到集合中去		
	for (int i = arr.length-1; i > 0-1; i--) {			
	//如果集合中已经存在相同商品了就先删除前面的			
	    for(int k = 0;k < itemList.size();k++){				
	        if (itemList.get(k).equals(this.getView(Integer.parseInt(arr[i])))) {				
	        	itemList.remove(k);//删除之前有的相同商品					
	        	j++;		//因为删除了一件商品,所以需要j++		
	            }			
	        }			
	        itemList.add(this.getView(Integer.parseInt(arr[i])));//添加对应的id商品到集合中去			
	        j--;			//成功添加一个商品,j--
	        //用j<0其实添加了j+1个商品去集合			
	        if (j<0) {				
	            break;			
	       }		
	 }		
	 return itemList;	
}

总结:

1、通过传入参数j,添加商品到集合就减一,删除商品到集合就加一,如果j<0就直接break跳出循环,不再添加商品进集合;

2、用两个for循环,判断前面集合里面是否已经有相同商品了,反正只要没到j<0,外部循环每次肯定是要添加商品的,内部循环并判断是否之前已经有相同商品了,有的话直接删除之前已经有的;

3、本来集合循环比较是否有相同商品可以用foreach语句更简单,但是就是不行,我也不知道原因,只能用这种原始的for循环语句;

4、添加商品时,getView()方法是之前创建的获取具有指定id值商品的方法;

5、互相交流学习,有更好的方法欢迎大神指正。

写回答 关注

2回答

  • sqsq
    2018-11-15 20:17:40

    J的初值是多少啊

  • 那个怪蜀黍是谁额
    2018-05-24 23:04:27
    public ArrayList<Items> getViews(String list,int j){//多传入了一个int j是为了保证最多显示规定的商品记录个数    
        String[] arr = list.split(",");         
        ArrayList<Items> itemList = new ArrayList<Items>();        
        //遍历数组添加到集合中去          
        for (int i = arr.length-1; i > 0-1; i--) {             
            //如果集合中已经存在相同商品了就先删除前面的                
            for(int k = 0;k < itemList.size();k++){                        
                if (itemList.get(k).equals(this.getView(Integer.parseInt(arr[i])))) {                            
                    itemList.remove(k);//删除之前有的相同商品                                
                    j++;        //因为删除了一件商品,所以需要j++                    
                }                      
            }                      
            itemList.add(this.getView(Integer.parseInt(arr[i])));//添加对应的id商品到集合中去                      
            j--;            //成功添加一个商品,j--            
            //用j<0其实添加了j+1个商品去集合                    
            if (j<0) {                           
                break;                    
            }         
        }        
        return itemList;
    }


    sqsq

    J的初值是多少啊

    2018-11-15 20:22:29

    共 1 条回复 >

JAVA遇见HTML——JSP篇

Java Web入门级教程JSP,带你轻松的学习JSP基础知识

248278 学习 · 3071 问题

查看课程

相似问题