隨筆-11  評(píng)論-5  文章-1  trackbacks-0

          ?? 數(shù)組和數(shù)組列表之間有著重大的區(qū)別。數(shù)組是Java語(yǔ)言的一個(gè)特征,對(duì)于每個(gè)元素類型T,都有數(shù)組類型T[];然而,ArrayList類是個(gè)定義java.util包中的類庫(kù)。這是一個(gè)存放object類型元素的"普通性"的類型。要注意的是,要從數(shù)組列表中提取元素時(shí),需要進(jìn)行類型轉(zhuǎn)換。
          ? 使用add方法可以向數(shù)組列表中添加新元素:
          ?? ArrayList staff = new ArrayList();
          ?? staff.add(new Employee(....));
          ?? staff.add(new Employee(....));
          ?? ArrayList類管理了一個(gè)Object引用的內(nèi)部數(shù)組。最終,可能會(huì)用完數(shù)組的空間。如果調(diào)用了add,而內(nèi)部數(shù)組已經(jīng)滿了,數(shù)組列表將自動(dòng)創(chuàng)建了一個(gè)更大的數(shù)組,并自動(dòng)把小數(shù)組中的對(duì)象拷貝到大數(shù)組中
          ? Size方法返回?cái)?shù)組列表的實(shí)際元素個(gè)數(shù)
          ??? staff.size()??? 它等價(jià)于數(shù)組a的a.length???
          ???訪問(wèn)數(shù)組列表元素
          因?yàn)?ArrayList類不是Java語(yǔ)言的一部分,它只是個(gè)提供在標(biāo)準(zhǔn)庫(kù)中、由某人編寫的工具類,并不像在訪問(wèn)數(shù)組元素時(shí)可以使用[]語(yǔ)法那

          樣,要存取或改變數(shù)組元素,你必須使用get和set方法
          ?? 要設(shè)置第i個(gè)元素,需要使用:
          ?? staff.set(i,harry);
          得到數(shù)組列表元素要更復(fù)雜一些,因?yàn)間et方法返回的類型是Object,你還需要把它轉(zhuǎn)換為想要的類型
          ?? Employee e = (Employee)staff.get(i); 它等價(jià)于Employee e = a[i];

          ?? 最后總結(jié)一下:
          ?無(wú)需指定數(shù)組大小
          用add增添任意多的元素;
          用size()代替length計(jì)算元素的個(gè)數(shù);
          用(Employee)a.get(i)代替a[i]訪問(wèn)元素i;

          public ?Collection?setRollBack(QueueVB?job)? throws ?CustomException
          ????
          {
          ????????
          ????????String?sqlselect?
          = ? " select?FileName?from?JobQueue?where?BatchNum= " + job.getBatchNum() + " ?and?DocTypeID= " + job.getDocTypeID() + " and?JobState='6' " ;
          ????????String?sql?
          = ? " update?JobQueue?set?JobState= " + JobState.SAVE + " ?where?BatchNum= " + job.getBatchNum() + " ?and?DocTypeID= " + job.getDocTypeID() + " ?and?JobNum= " + job.getJobNum() + "" ;
          ????????ArrayList?array
          = new ?ArrayList();
          ????????System.out.println(sql);
          ????????????????
          try
          ????????????????
          {
          ????????????????????getConnection
          = ConnectionLocator.getInstance().getConnection(strJNDI);
          ????????????????????ResultSet?rs
          = null ;
          ????????????????????
          if (getConnection != null )
          ????????????????????
          {
          ????????????????????????PreparedStatement?pstmt1
          = getConnection.prepareStatement(sqlselect);
          ????????????????????????PreparedStatement?pstmt
          = getConnection.prepareStatement(sql);
          ????????????????????????
          ????????????????????????rs?
          = ?pstmt1.executeQuery();
          ????????????????????????pstmt.executeUpdate();
          ????????????????????????
          while (rs.next())
          ????????????????????????
          {
          ????????????????????????????String?fileName?
          = ?rs.getString( " FileName " );
          ????????????????????????????FileNameVB?filenameVB?
          = ? new
          ?FileNameVB();//將得到的“文件名“進(jìn)行封裝
          ????????????????????????????filenameVB.setFileName(fileName);
          ????????????????????????????array.add(filenameVB);
          ????????????????????????}

          ????????????????????????
          try
          ????????????????????????
          {
          ????????????????????????????pstmt.close();
          ????????????????????????}

          ????????????????????????
          catch (SQLException?e)
          ????????????????????????
          { throw ? new ?CustomException(e.getMessage(), " exs " );}
          ????????????????????????
          try
          ????????????????????????
          {
          ????????????????????????????getConnection.close();
          ????????????????????????}

          ????????????????????????
          catch (SQLException?e)
          ????????????????????????
          { throw ? new ?CustomException(e.getMessage(), " exs " );}
          ????????????????????}

          ????????????????}

          ????????????????
          catch (SQLException?e)
          ????????????????
          { throw ? new ?CustomException(e.getMessage(), " ex00050 " );}
          ????????????????
          return ?array;
          ????}
          讀取arraylist里的值
          Collection?m??=?inputFacade.setRollBack(job);
          ????????????????????ArrayList?array?
          =
          ?(ArrayList)m;
          ????????????????????
          for(int?i=0;i<array.size();i++
          )
          ????????????????????
          {???
          ????????????????????????filenameVB?
          =?(FileNameVB)array.get(i);
          posted on 2006-09-16 10:28 Crespo 閱讀(1193) 評(píng)論(1)  編輯  收藏 所屬分類: Java web

          評(píng)論:
          # re: java.util.ArrayList 2006-09-25 10:04 | sunyi
          hahahah

          u just do a such professional blog
          can't understand
          huhuhuhuhu


          best wishes always
            回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 平乐县| 新竹市| 潢川县| 濮阳县| 敖汉旗| 阜南县| 班戈县| 大埔县| 兴国县| 富裕县| 武清区| 黔西| 平南县| 五莲县| 建阳市| 普洱| 陆丰市| 新巴尔虎左旗| 沂源县| 西和县| 新沂市| 和顺县| 宁乡县| 刚察县| 福鼎市| 石门县| 伊宁市| 开鲁县| 东平县| 阳春市| 华池县| 佛坪县| 宁晋县| 徐州市| 太和县| 调兵山市| 青阳县| 东至县| 运城市| 获嘉县| 成武县|