项目实战:滚动刷新场景(从ArrayList到LinkedList)

本文探讨了在项目实战中遇到的滚动刷新场景,初始使用ArrayList实现,但随着数据追加导致列表长度增加。通过阅读API发现,应该使用set更新数据而不是add。进一步分析,滚动刷新的需求符合先进先出(FIFO)特性,因此转向使用LinkedList作为队列实现。LinkedList实现了Queue接口,提供了offer和poll方法,更适合用于此类场景。总结强调熟练掌握API和数据结构对于Android项目开发的重要性。
摘要由CSDN通过智能技术生成

如果有这样一个需求,有这样一个列表显示数据,现假设一共显示25项,初始状态为空。

首先从0-24添加数据,满了之后,覆盖最早数据,即继续从0-24追加数据。

习惯性思维ArrayList开始搞。

java.util
类 ArrayList<E>

java.lang.Object
  继承者 java.util.AbstractCollection<E>
      继承者 java.util.AbstractList<E>
          继承者 java.util.ArrayList<E>
所有已实现的接口:
Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess
直接已知子类:
AttributeList, RoleList, RoleUnresolvedList

Duang的一下写好代码,不就是add嘛。

import java.util.ArrayList;
import java.util.List;

/*
 * 权兴权意-20160920
 */

public class ArrayListTest {
	
<span style="white-space:pre">	</span>private static List<Integer> list = new ArrayList<Integer>();
    <span style="white-space:pre">	</span>private static int count = 0;

	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		for(int i = 0;i <= 50;i++){
			list.add(count,count);
			count++;
			if (count == 25)
				count = 0;
			for(int temp : list){
				System.out.print(temp + ",");
			}
			System.out.println("-----+" + count);
		}
	}

}

看一下效果,然而并没有这么简单,



阴影部分初始化数据木有问题,看阴影部分下方,从0-24添加数据也木有问题,不过,你有木有发现,List越来越长了,现在我们先看看看API,到底是什么鬼。

public class ArrayList<E>
   
   
    
    extends 
    
    AbstractList<E>
   
   
   
   
    
    implements 
    
    List<E>, 
    
    RandomAccess, 
    
    Cloneable, 
    
    Serializable
   
   
 

List 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括null 在内的所有元素。除了实现List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于Vector 类,除了此类是不同步的。)

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值