新浪网股票数据抓取以及存储

代码附于附件压缩包工程中的stock包中,其他还包括了Demo包中的JDBC增删改查例子。但是存入数据库这部分还未完成,对于stockDate字段,其类型为Date,本想使用List.get()方法将List中的数据取出赋值给一个变量,从而存储在数据库中,但是对于Date类型的数据好像不能直接赋值给变量,故还需寻找解决方法。
在工程的进行中,还接触到其他许多新的知识:
1、ArrayList类
   ArrayList实现了可变大小的数组,它允许所有元素,包括null,ArrayList没有同步。 size,isEmpty,get,set方法运行时间为常数,但是add方法开销为分摊的常数,添加n个元素需要O(n)的时间。其他的方法运行时间为线性。 每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加,但是增长算法并没有定义。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。
2、用Iterator模式实现遍历集合
典型的用法如下:
   
Iterator it = collection.iterator(); // 获得一个迭代子 
    while(it.hasNext()) {
      Object obj = it.next(); // 得到下一个元素
    }


Iterator模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。
例如,如果没有使用Iterator,遍历一个数组的方法是使用索引:
for(int i=0; i<array.size(); i++) { ... get(i) ... }
而访问一个链表(LinkedList)又必须使用while循环:
while((e=e.next())!=null) { ... e.data() ... }
为解决以上问题,Iterator模式总是用同一种逻辑来遍历集合:
for(Iterator it = c.iterater(); it.hasNext(); ) { ... }
奥秘在于客户端自身不维护遍历集合的"指针",所有的内部状态(如当前元素位置,是否有下一个元素)都由Iterator来维护,而这个Iterator由集合类通过工厂方法生成,因此,它知道如何遍历整个集合。 客户端从不直接和集合类打交道,它总是控制Iterator,向它发送"向前","向后","取当前元素"的命令,就可以间接遍历整个集合。
首先看看java.util.Iterator接口的定义:
 public interface Iterator { 
boolean hasNext();
Object next();
void remove();
}

依赖前两个方法就能完成遍历,典型的代码如下:
 for(Iterator it = c.iterator(); it.hasNext(); ) { 
Object o = it.next();
// 对o的操作...
}

在JDK1.5中,还对上面的代码在语法上作了简化:
// Type是具体的类型,如String。 
for(Type t : c) {
// 对t的操作...
}

每一种集合类返回的Iterator具体类型可能不同,Array可能返回ArrayIterator,Set可能返回SetIterator,Tree可能返回TreeIterator,但是它们都实现了Iterator接口。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值