<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    tbwshc

    2013年9月17日 #

    Java調用SQL Server的存儲過程詳解

    1使用不帶參數的存儲過程

      1

      {call procedure-name}

      作為實例,在 SQL Server 2005 AdventureWorks 示例數據庫中創建以下存儲過程:

      CREATE PROCEDURE GetContactFormalNames

      AS BEGIN SELECT TOP 10 Title + ' ' + FirstName + ' ' + LastName AS FormalName

      FROM Person.Contact END

      此存儲過程返回單個結果集,其中包含一列數據(由 Person.Contact 表中前十個聯系人的稱呼、名稱和姓氏組成)。

      在下面的實例中,將向此函數傳遞 AdventureWorks 示例tb數據庫的打開連接,然后使用 executeQuery 方法調用 GetContactFormalNames 存儲過程。

      public static void executeSprocNoParams(Connection con)

      …{

      try …{

      Statement stmt = con.createStatement();

      ResultSet rs = stmt.executeQuery("{call dbo.GetContactFormalNames}");

      while (rs.next())

      …{

      System.out.println(rs.getString("FormalName"));

      }

      rs.close();

      stmt.close();

      }

      catch (Exception e)

      …{

      e.printStackTrace();

      }

      }

      2使用帶有輸入參數的存儲過程

      使用 JDBC 驅動程序調用帶參數的存儲過程時,必須結合 SQLServerConnection 類的 prepareCall 方法使用 call SQL 轉義序列。帶有 IN 參數的 call 轉義序列的語法如下所示:

      {call procedure-name[([parameter][,[parameter]]…)]}http://jie.baijiale.94ibc.com

      構造 call 轉義序列時,請使用 ?(問號)字符來指定 IN 參數。此字符充當要傳遞給該存儲過程的參數值的占位符。可以使用 SQLServerPreparedStatement 類的 setter 方法之一為參數指定值。可使用的 setter 方法由 IN 參數的數據類型決定。

      向 setter 方法傳遞值時,不僅需要指定要在參數中使用的實際值,還必須指定參數在存儲過程中的序數位置。例如,如果存儲過程包含單個 IN 參數,則其序數值為 1.如果存儲過程包含兩個參數,則第一個序數值為 1,第二個序數值為 2.

      作為如何調用包含 IN 參數的存儲過程的實例,使用 SQL Server 2005 AdventureWorks 示例數據庫中的 uspGetEmployeeManagers 存儲過程。此存儲過程接受名為 EmployeeID 的單個輸入參數

    posted @ 2013-10-24 17:05 chen11-1 閱讀(635) | 評論 (0)編輯 收藏

    Java中生成文件的10項建議

    1. 記住 - "越少越好"并非總是如此(Keep in Mind – "Less is more" is not always better)。 – 高效率的代碼是件好事,但很多情況下,并非代碼行數越少效率就越高

      2. 不要把簡單事情復雜化(Do not complicate things)。 – 我曾經這么做過,我相信你也一樣。開發者都傾向于采用復雜方式解決簡單問題。我們在一個只有5個用戶的系統中引入EJB,為一個并不需要框架的應用實現一套框架,采用屬性文件、采用面向tb對象解決方案、使用線程,而這些根本用不著。為什么會這么做?一些人可能不知道有更好的解決方案,但另一些人可能故意這樣做來學習新知識,或僅僅是因為有趣。對那些不知道更好解決方案的人,要多聽有經驗程序員的建議。對于那些純粹出于個人目的而將設計復雜化的人,我建議你要更加專業一點。
      3. 不要"硬編碼"(No hard coding please)。 – 由于時間緊迫,開發者總是會忘記或故意忽略這一條。然而另一種可能是,遵循這條戒律,我們就不會陷入"時間緊迫"的困境。定義一個static final 變量,增加一行代碼,又能花多長時間呢?

      4. 為代碼添加注釋(Add comments to your code)。 – 每個人都知道這一點,但不是每個人都會這么做。你有多少次"忘記"添加注釋了?確實,注釋不會為你的程序增加任何函數功能。但是,有多少次,看到2周前寫的代碼,你都記不起它是干什么的?你很幸運,那些未注釋的代碼是你自己寫的,你腦海中還會有殘存的印象。非常不幸,大多時候,代碼是別人寫的,并且那個人很可能已經離開公司了。有句諺語說的好:"有來有往,互惠互利",因此程序員應該體諒彼此(還有你自己),給你的代碼加上注釋。

     

    posted @ 2013-10-24 17:04 chen11-1 閱讀(324) | 評論 (0)編輯 收藏

    針對Java Excel API及詳細教程

    時在java開發中會操作excel表格,其實操作起來也特別簡單。這里把前期操作步驟說一下,本文會簡單的介紹一個開放源碼項目:Java Excel Api,使用它大家就可以方便的操作Excel文件了。

      首先下載好:Java Excel Api,這個文件我已經和 JAVA+Excel+API詳細教程。pdf一并壓縮上傳了,感興趣的朋友可以下載!

      我這里用的開發平臺是Eclipse,這里我把操作簡單說一下:

      1, 建,立java項目,在這個項目在建立一個新的文件夾lib;

      2, 將jxl.jar,即Java Excel Ap,復制到lib

      3,然后右鍵點擊這個java項目,tb選擇Propertieshttp://jie.baijiale.ibc198.com

      4,在左側列表里選中Java Build Path ,右側選中Libraries

      5,點擊Add JARs

      6, 然后去選擇這個項目中lib文件夾中的jxl.jar,點擊確定

      成功后,項目中會多一個文件夾為:Referenced Libraries

      準備工作完成后,就可以去操作excel了,

    posted @ 2013-10-24 17:02 chen11-1 閱讀(286) | 評論 (0)編輯 收藏

    框架Quart在Java中任務調度的使用

      Quartz框架是一個全功能、開源的任務調度服務,可以集成幾乎任何的java應用程序—從小的單片機系統到大型的電子商務系統。Quartz可以執行上千上萬的任務調度。

      核心概念

      Quartz核心的概念:scheduler任務調度、Job任務、Trigger觸發器、JobDetail任務細節

      Job任務:其實Job是接口,其中只有一個execute方法:

      package org.quartz;

      public abstract interface Job

      {

      public abstract void execute(JobExecutionContext paramJobExecutionContext)

      throws JobExecutionException;

      }

      我們開發者只要實現此接口,實現execute方法即可。把我們想做的事情,在execute中執行即可。

      JobDetail:任務細節,Quartz執行Job時,需要新建個Job實例,但是不能直接操作Job類,所以通過JobDetail來獲取Job的名稱、描述信息。

      Trigger觸發器:執行任務的規則;比如每天,每小時等。

      一般情況使用SimpleTrigger,和CronTrigger,這個觸發器實現了Trigger接口。

      對于復雜的時間表達式來說,比如每個月15日上午幾點幾分,使用CronTrigger

      對于簡單的時間來說,比如每天執行幾次,使用SimpleTrigger

      scheduler任務調度:是最核心的概念,需要把JobDetail和Trigger注冊到scheduler中,才可以執行。

      注意:

      不同的版本的jar包,具體的操作不太相同,但是tbw思路是相同的;比如1.8.6jar包中,JobDetail是個類,直接通過構造方法與Job類關聯。SimpleTrigger和CornTrigger是類;在2.0.2jar包中,JobDetail是個接口,SimpleTrigger和CornTrigger是接口

      不同版本測試:

      1.8.6jar包:

      [html]

      package com.test;

      import java.util.Date;

      import org.quartz.Job;

      import org.quartz.JobExecutionContext;

      import org.quartz.JobExecutionException;

      /**

      * 需要執行的任務

      * @author lhy

      *

      */

      public class MyJob implements Job {

      @Override

      //把要執行的操作,寫在execute方法中

      public void execute(JobExecutionContext arg0) throws JobExecutionException {

      System.out.println("測試Quartz"+new Date());

      }

      }

      package com.test;

      import java.util.Date;

      import org.quartz.Job;

      import org.quartz.JobExecutionContext;

      import org.quartz.JobExecutionException;

      /**

      * 需要執行的任務

      * @author lhy

      *

      */

      public class MyJob implements Job {

      @Override

      //把要執行的操作,寫在execute方法中

      public void execute(JobExecutionContext arg0) throws JobExecutionException {

      System.out.println("測試Quartz"+new Date());

      }

      }

      使用SimpleTrigger觸發器

      [html]

      package com.test;

      import java.util.Date;

      import org.quartz.JobDetail;

      import org.quartz.Scheduler;

      import org.quartz.SchedulerException;

      import org.quartz.SchedulerFactory;

      import org.quartz.SimpleTrigger;

      import org.quartz.impl.StdSchedulerFactory;

      /**

      * 調用任務的類

      * @author lhy

      *

      */

      public class SchedulerTest {

      public static void main(String[] args) {

      //通過schedulerFactory獲取一個調度器

      SchedulerFactory schedulerfactory=new StdSchedulerFactory();

      Scheduler scheduler=null;

      try{

      // 通過schedulerFactory獲取一個調度器

      scheduler=schedulerfactory.getScheduler();

      // 創建jobDetail實例,綁定Job實現類

      // 指明job的名稱,所在組的名稱,以及綁定job類

      JobDetail jobDetail=new JobDetail("job1", "jgroup1", MyJob.class);

      // 定義調度觸發規則,比如每1秒運行一次,共運行8次

      SimpleTrigger simpleTrigger=new SimpleTrigger("simpleTrigger","triggerGroup");

      // 馬上啟動

      simpleTrigger.setStartTime(new Date());

      // 間隔時間

      simpleTrigger.setRepeatInterval(1000);

      // 運行次數

      simpleTrigger.setRepeatCount(8);

      // 把作業和觸發器注冊到任務調度中

      scheduler.scheduleJob(jobDetail, simpleTrigger);

      // 啟動調度

      scheduler.start();

      }catch(SchedulerException e){

      e.printStackTrace();

      }

      }

      }

      package com.test;

      import java.util.Date;

      import org.quartz.JobDetail;

      import org.quartz.Scheduler;

      import org.quartz.SchedulerException;

      import org.quartz.SchedulerFactory;

      import org.quartz.SimpleTrigger;

      import org.quartz.impl.StdSchedulerFactory;

      /**

      * 調用任務的類

      * @author lhy

      *

      */

      public class SchedulerTest {

      public static void main(String[] args) {

      //通過schedulerFactory獲取一個調度器

      SchedulerFactory schedulerfactory=new StdSchedulerFactory();

      Scheduler scheduler=null;

      try{

      // 通過schedulerFactory獲取一個調度器

      scheduler=schedulerfactory.getScheduler();

      // 創建jobDetail實例,綁定Job實現類

      // 指明job的名稱,所在組的名稱,以及綁定job類
     JobDetail jobDetail=new JobDetail("job1", "jgroup1", MyJob.class);

      // 定義調度觸發規則,比如每1秒運行一次,共運行8次

      SimpleTrigger simpleTrigger=new SimpleTrigger("simpleTrigger","triggerGroup");

      // 馬上啟動

      simpleTrigger.setStartTime(new Date());

      // 間隔時間

      simpleTrigger.setRepeatInterval(1000);

      // 運行次數

      simpleTrigger.setRepeatCount(8);

      // 把作業和觸發器注冊到任務調度中

      scheduler.scheduleJob(jobDetail, simpleTrigger);

      // 啟動調度

      scheduler.start();

      }catch(SchedulerException e){

      e.printStackTrace();

      }

      }

      } 若使用CornTrigger觸發器:

      [html]

      package com.test;

      import java.util.Date;

      import org.quartz.CronTrigger;

      import org.quartz.JobDetail;

      import org.quartz.Scheduler;

      import org.quartz.SchedulerException;

      import org.quartz.SchedulerFactory;

      import org.quartz.SimpleTrigger;

      import org.quartz.impl.StdSchedulerFactory;

      /**

      * 調用任務的類

      * @author lhy

      *

      */

      public class CronTriggerTest {

      public static void main(String[] args) {

      //通過schedulerFactory獲取一個調度器

      SchedulerFactory schedulerfactory=new StdSchedulerFactory();

      Scheduler scheduler=null;

      try{

      // 通過schedulerFactory獲取一個調度器

      scheduler=schedulerfactory.getScheduler();

      // 創建jobDetail實例,綁定Job實現類

      // 指明job的名稱,所在組的名稱,以及綁定job類

      JobDetail jobDetail=new JobDetail("job1", "jgroup1", MyJob.class);

      // 定義調度觸發規則,每天上午10:15執行

      CronTrigger cornTrigger=new CronTrigger("cronTrigger","triggerGroup");

      // 執行規則表達式

      cornTrigger.setCronExpression("0 15 10 * * ? *");

      // 把作業和觸發器注冊到任務調度中

      scheduler.scheduleJob(jobDetail, cornTrigger);

      // 啟動調度

      scheduler.start();

      }catch(Exception e){

      e.printStackTrace();

      }

      }

      }

      package com.test;

      import java.util.Date;

      import org.quartz.CronTrigger;

      import org.quartz.JobDetail;

      import org.quartz.Scheduler;

      import org.quartz.SchedulerException;

      import org.quartz.SchedulerFactory;

      import org.quartz.SimpleTrigger;

      import org.quartz.impl.StdSchedulerFactory;

      /**

      * 調用任務的類

      * @author lhy

      *

      */

      public class CronTriggerTest {

      public static void main(String[] args) {

      //通過schedulerFactory獲取一個調度器

      SchedulerFactory schedulerfactory=new StdSchedulerFactory();

      Scheduler scheduler=null;

      try{

      // 通過schedulerFactory獲取一個調度器

      scheduler=schedulerfactory.getScheduler();

      // 創建jobDetail實例,綁定Job實現類

      // 指明job的名稱,所在組的名稱,以及綁定job類

      JobDetail jobDetail=new JobDetail("job1", "jgroup1", MyJob.class);

      // 定義調度觸發規則,每天上午10:15執行

      CronTrigger cornTrigger=new CronTrigger("cronTrigger","triggerGroup");

      // 執行規則表達式

      cornTrigger.setCronExpression("0 15 10 * * ? *");

      // 把作業和觸發器注冊到任務調度中

      scheduler.scheduleJob(jobDetail, cornTrigger);

      // 啟動調度

      scheduler.start();

      }catch(Exception e){

      e.printStackTrace();

      }

      }

      }

      對于2.0.2jar包如下:

      其中的job類不變,主要是調度類如下:

      [html]

      package com.test;

      import java.util.Date;

      import org.quartz.CronScheduleBuilder;

      import org.quartz.JobBuilder;

      import org.quartz.JobDetail;

      import org.quartz.Scheduler;

      import org.quartz.SchedulerException;

      import org.quartz.SchedulerFactory;

      import org.quartz.SimpleScheduleBuilder;

      import org.quartz.Trigger;

      import org.quartz.TriggerBuilder;

      import org.quartz.impl.StdSchedulerFactory;

      /**

      * 調用任務的類

      * @author lhy

      *

      */

      public class SchedulerTest {

      public static void main(String[] args) {

      //通過schedulerFactory獲取一個調度器

      SchedulerFactory schedulerfactory=new StdSchedulerFactory();

      Scheduler scheduler=null;

      try{

      // 通過schedulerFactory獲取一個調度器

      scheduler=schedulerfactory.getScheduler();

      // 創建jobDetail實例,綁定Job實現類

      // 指明job的名稱,所在組的名稱,以及綁定job類

      JobDetail job=JobBuilder.newJob(MyJob.class).withIdentity("job1", "jgroup1").build();

      // 定義調度觸發規則

      // 使用simpleTrigger規則

      // Trigger trigger=TriggerBuilder.newTrigger().withIdentity("simpleTrigger", "triggerGroup")

      // .withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(1).withRepeatCount(8))

      // .startNow().build();

      // 使用cornTrigger規則 每天10點42分

      Trigger trigger=TriggerBuilder.newTrigger().withIdentity("simpleTrigger", "triggerGroup")

      .withSchedule(CronScheduleBuilder.cronSchedule("0 42 10 * * ? *"))

      .startNow().build();

      // 把作業和觸發器注冊到任務調度中

      scheduler.scheduleJob(job, trigger);

      // 啟動調度

      scheduler.start();

      }catch(Exception e){

      e.printStackTrace();

      }

      }

      }

      package com.test;

      import java.util.Date;

      import org.quartz.CronScheduleBuilder;

      import org.quartz.JobBuilder;

      import org.quartz.JobDetail;

      import org.quartz.Scheduler;

      import org.quartz.SchedulerException;

      import org.quartz.SchedulerFactory;

      import org.quartz.SimpleScheduleBuilder;

      import org.quartz.Trigger;

      import org.quartz.TriggerBuilder;

      import org.quartz.impl.StdSchedulerFactory;

      /**

      * 調用任務的類

      * @author lhy

      *

      */

      public class SchedulerTest {

      public static void main(String[] args) {

      //通過schedulerFactory獲取一個調度器

      SchedulerFactory schedulerfactory=new StdSchedulerFactory();

      Scheduler scheduler=null;

      try{

      // 通過schedulerFactory獲取一個調度器

      scheduler=schedulerfactory.getScheduler();

      // 創建jobDetail實例,綁定Job實現類

      // 指明job的名稱,所在組的名稱,以及綁定job類

      JobDetail job=JobBuilder.newJob(MyJob.class).withIdentity("job1", "jgroup1").build();

      // 定義調度觸發規則

      // 使用simpleTrigger規則

      // Trigger trigger=TriggerBuilder.newTrigger().withIdentity("simpleTrigger", "triggerGroup")

      // .withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(1).withRepeatCount(8))

      // .startNow().build();

      // 使用cornTrigger規則 每天10點42分

      Trigger trigger=TriggerBuilder.newTrigger().withIdentity("simpleTrigger", "triggerGroup")

      .withSchedule(CronScheduleBuilder.cronSchedule("0 42 10 * * ? *"))

      .startNow().build();

      // 把作業和觸發器注冊到任務調度中

      scheduler.scheduleJob(job, trigger);

      // 啟動調度

      scheduler.start();

      }catch(Exception e){

      e.printStackTrace();

      }

      }

      }

      上述demo下載:1.8版本demo下載

      2.0版本demo下載

      對于CornExpress講解如下:

      字段 允許值 允許的特殊字符

      秒 0-59 , - * /

      分 0-59 , - * /

      小時 0-23 , - * /

      日期 1-31 , - * ? / L W C

      月份 1-12 或者 JAN-DEC , - * /

      星期 1-7 或者 SUN-SAT , - * ? / L C #

      年(可選) 留空, 1970-2099 , - * /

      表達式 意義

      "0 0 12 * * ?" 每天中午12點觸發

      "0 15 10 ? * *" 每天上午10:15觸發

      "0 15 10 * * ?" 每天上午10:15觸發

      "0 15 10 * * ? *" 每天上午10:15觸發

      "0 15 10 * * ? 2005" 2005年的每天上午10:15觸發

      "0 * 14 * * ?" 在每天下午2點到下午2:59期間的每1分鐘觸發

      "0 0/5 14 * * ?" 在每天下午2點到下午2:55期間的每5分鐘觸發

      "0 0/5 14,18 * * ?" 在每天下午2點到2:55期間和下午6點到6:55期間的每5分鐘觸發

      "0 0-5 14 * * ?" 在每天下午2點到下午2:05期間的每1分鐘觸發

      "0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44觸發

      "0 15 10 ? * MON-FRI" 周一至周五的上午10:15觸發

      "0 15 10 15 * ?" 每月15日上午10:15觸發

      "0 15 10 L * ?" 每月最后一日的上午10:15觸發

      "0 15 10 ? * 6L" 每月的最后一個星期五上午10:15觸發

      "0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一個星期五上午10:15觸發

      "0 15 10 ? * 6#3" 每月的第三個星期五上午10:15觸發

      特殊字符 意義

      * 表示所有值;

      ? 表示未說明的值,即不關心它為何值;

      - 表示一個指定的范圍;

      , 表示附加一個可能值;

      / 符號前表示開始時間,符號后表示每次遞增的值;

      L("last") ("last") "L" 用在day-of-month字段意思是 "這個月最后一天";用在 day-of-week字段, 它簡單意思是 "7" or "SAT"。 如果在day-of-week字段里和數字聯合使用,它的意思就是 "這個月的最后一個星期幾" – 例如: "6L" means "這個月的最后一個星期五". 當我們用“L”時,不指明一個列表值或者范圍是很重要的,不然的話,我們會得到一些意想不到的結果。

      W("weekday") 只能用在day-of-month字段。用來描敘最接近指定天的工作日(周一到周五)。例如:在day-of-month字段用“15W”指“最接近這個月第15天的工作日”,即如果這個月第15天是周六,那么觸發器將會在這個月第14天即周五觸發;如果這個月第15天是周日,那么觸發器將會在這個月第16天即周一觸發;如果這個月第15天是周二,那么就在tbw觸發器這天觸發。注意一點:這個用法只會在當前月計算值,不會越過當前月。“W”字符僅能在day-of-month指明一天,不能是一個范圍或列表。也可以用“LW”來指定這個月的最后一個工作日。

      # 只能用在day-of-week字段。用來指定這個月的第幾個周幾。例:在day-of-week字段用"6#3"指這個月第3個周五(6指周五,3指第3個)。如果指定的日期不存在,觸發器就不會觸發。

      C 指和calendar聯系后計算過的值。例:在day-of-month 字段用“5C”指在這個月第5天或之后包括calendar的第一天;在day-of-week字段用“1C”指在這周日或之后包括calendar的第一天

    posted @ 2013-09-17 15:15 chen11-1 閱讀(2024) | 評論 (0)編輯 收藏

    序列化在IO中讀寫對象的使用

        序列化就是一種用來處理對象流的機制,所謂對象流也就是將對象的內容進行流化。可以對流化后的對象進行讀寫操作,也可將流化后的對象傳輸于網絡之間。序列化是為了解決在對對象流進行讀寫操作時所引發的問題。

      序列化的實現:將需要被序列化的類實現Serializable接口,然后使用一個輸出流(如:FileOutputStream)來構造一個ObjectOutputStream(對象流)對象,接著,使用ObjectOutputStream對象的writeObject(Object obj)方法就可以將參數為obj的對象寫出(即保存其狀態),要恢復的話則用輸入流。
     寫對象和讀對象的時候一定要使用序列化:

      import java.io.*;

      class Product implements Serializable {

      private static final long serialVersionUID = 1L;

      private float price;

      private float tax;

      public Product(float price) {

      this.price = price;

      tax = (float)(price*0.20);

      }

      public String toString() {

      return "price:"+price+",tax:"+tax;

      }

      }

      public class CmdDemo {

      public static void main(String[] strtb) throws Exception {

      Product p1 = new Product(100);

      ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream

      ("d:\product.txt"));

      os.writeObject(p1);

      os.close();

      ObjectInputStream is = new ObjectInputStream(new FileInputStream

      ("d:\product.txt"));

      Product p2 = (Product) is.readObject();

      System.out.println(p2.toString());

      }

      }

    posted @ 2013-09-17 15:12 chen11-1 閱讀(275) | 評論 (0)編輯 收藏

    Java數組使用實用的技巧

      本文分享了關于Java數組最頂級的11大方法,幫助你解決工作流程問題,無論是運用在團隊環境或是在私人項目中,你都可以直接拿來用!

    0.  聲明一個數組(Declare an array)
     
    String[] aArray = new String[5];
    String[] bArray = {"a","b","c", "d", "e"};
    String[] cArray = new String[]{"a","b","c","d","e"};

    1.  在Java中輸出一個數組(Print an array in Java)
     
    int[] intArray = { 1, 2, 3, 4, 5 };
    String intArrayString = Arrays.toString(intArray);
     
    // print directly will print reference value
    System.out.println(intArray);
    // [I@7150bd4d
     
    System.out.println(intArrayString);
    // [1, 2, 3, 4, 5]

    2. 從數組中創建數組列表(Create an ArrayList from an array)
     
    String[] stringArray = { "a", "b", "c", "d", "e" };
    ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray));
    System.out.println(arrayList);
    // [a, b, c, d, e]

    3. 檢查愛淘寶數組中是否包含特定值(Check if an array contains a certain value)
     
    String[] stringArray = { "a", "b", "c", "d", "e" };
    boolean b = Arrays.asList(stringArray).contains("a");
    System.out.println(b);
    // true
     
    4. 連接兩個數組( Concatenate two arrays)
     
    int[] intArray = { 1, 2, 3, 4, 5 };
    int[] intArray2 = { 6, 7, 8, 9, 10 };
    // Apache Commons Lang library
    int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);
    5. 聲明一個數組內鏈(Declare an array inline )
     
    method(new String[]{"a", "b", "c", "d", "e"});
     
    6. 將數組元素加入到一個獨立的字符串中(Joins the elements of the provided array into a single String)

    // containing the provided list of elements
    // Apache common lang
    String j = StringUtils.join(new String[] { "a", "b", "c" }, ", ");
    System.out.println(j);
    // a, b, c
     
    7. 將數組列表轉換成一個數組 (Covnert an ArrayList to an array)
     
    String[] stringArray = { "a", "b", "c", "d", "e" };
    ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray));
    String[] stringArr = new String[arrayList.size()];
    arrayList.toArray(stringArr);
    for (String s : stringArr)
        System.out.println(s);
     
    8. 將數組轉換成一個集合(Convert an array to a set)
     
    Set<String> set = new HashSet<String>(Arrays.asList(stringArray));
    System.out.println(set);
    //[d, e, b, c, a]
     
    9. 反向數組(Reverse an array)
     
    int[] intArray = { 1, 2, 3, 4, 5 };
    ArrayUtils.reverse(intArray);
    System.out.println(Arrays.toString(intArray));
    //[5, 4, 3, 2, 1]
     
    10. 刪除數組元素(Remove element of an array)
     
    int[] intArray = { 1, 2, 3, 4, 5 };
    int[] removed = ArrayUtils.removeElement(intArray, 3);
    //create a new array
    System.out.println(Arrays.toString(removed));
     
    One more – convert int to byte array
     
    byte[] bytes = ByteBuffer.allocate(4).putInt(8).array();
     
    for (byte t : bytes) {
       System.out.format("0x%x ", t);
    }

    posted @ 2013-09-17 15:08 chen11-1 閱讀(265) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 亚洲综合免费视频| 亚洲宅男永久在线| 国产AV无码专区亚洲AV蜜芽| 成熟女人特级毛片www免费| 亚洲中文字幕久在线| 免费精品国产自产拍在线观看图片| 亚洲综合激情视频| 国产精彩免费视频| 亚洲一区二区三区写真| 国产精品色午夜免费视频| 美女被爆羞羞网站免费| 最新亚洲成av人免费看| 在线观看人成视频免费无遮挡| 亚洲成AV人片在线观看无码| 亚洲精品视频免费在线观看| 亚洲另类视频在线观看| 永久免费av无码网站大全| 曰批免费视频播放在线看片二| 亚洲国产人成精品| 99视频有精品视频免费观看| 亚洲Av无码一区二区二三区| 国产成人免费片在线观看| 一级特黄色毛片免费看| 亚洲AV无码专区在线播放中文 | 无码免费午夜福利片在线| 亚洲欧美成人一区二区三区| 亚洲精品无码久久毛片| 久久综合给合久久国产免费 | 亚洲一级片在线观看| 青青草国产免费久久久91 | 久久久久国色av免费看| 亚洲av永久无码精品三区在线4 | 无码天堂va亚洲va在线va| 亚洲色大成网站WWW久久九九| 99久久精品日本一区二区免费| 国产成人亚洲综合在线| 亚洲激情视频在线观看| 日本免费高清一本视频| 性色午夜视频免费男人的天堂| 亚洲av午夜国产精品无码中文字 | 99re免费视频|