JAVA中取順序號 (轉)
在寫的時候,經常會遇到用一個唯一的鍵值去票識一個,如中一條記錄的主鍵,的檔名
等。常用的做法將這個鍵值從1,2,3……這樣一值遞加下去,但這樣會比較費時。如在資料庫中的記錄,你要
先找出最大的一個流水號,再進行加1的操作,這樣已是做了一個資料庫的操作,如在檔案系統中,那就
要先讀出所有檔名,對檔名進行排序,那更麻煩了。
下面介紹一個比較簡單快捷的方法,那就是使用系統時鐘。在中,使用System.currentTimeMillis()可以
得到這前系統時間所對應的毫秒數,時間是不會重複的,所以可放心使用。為了滿足併發使用的情況,可以加
入同步。
下面有一段樣例程式碼,可以參考一下:
package comm;
import java.util.Ran;
public class UId {
private static Random random = new java.util.Random();
private static final int ID_BYTES = 10;
public synchronized static String generateId() {
StringBuffer result = new StringBuffer();
result = result.append(System.currentTimeMillis());
for (int i = 0; i < ID_BYTES; i++) {
result = result.append(random.nextInt(10));
}
return result.toString();
}
}
在上面的程式碼中,在系統的毫秒數後面還加了10位的隨機數,以保證在同一毫秒內的併發取得不同的值。
當然,使用這種方法也有一定的侷限,一是你不能隨意修改時間,二就是鍵值不是按順序的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-998952/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PHP中foreach讀取順序PHP
- Java中class的初始化順序Java
- 關於JAVA中順序IO的基本操作Java
- [20210218]bash echo 建立順序號.txt
- Java實現順序表Java
- python-reverse順序反轉Python
- Java for迴圈中語句執行的順序Java
- jsoncpp按寫入順序讀取JSON
- python:LEGB識別符號解析順序Python符號
- 美團二面:SpringBoot讀取配置優先順序順序是什麼?Spring Boot
- Java父子類載入順序Java
- java運算子優先順序Java
- linux 中實現資料按照指定行號順序輸出Linux
- Java中如何保證執行緒順序執行Java執行緒
- 中斷優先順序
- Java中,類與類,類中的程式碼執行順序Java
- java類初始化的順序Java
- Java框架學習順序是哪些Java框架
- Java框架學習順序是哪些?Java框架
- java setPriority()設定優先順序Java
- 淺談Java類中的變數初始化順序Java變數
- 學Java,Java書籍的最佳閱讀順序Java
- Java流程控制02:順序結構Java
- 每日一練(31):翻轉單詞順序
- python運算子及優先順序順序Python
- MySQL:讀取my.cnf的順序問題MySql
- 學習-Java順序結構之字元變換之大小寫字母轉換Java字元
- CSS 世界中的方位與順序CSS
- 順序表
- java基礎(四) java運算順序的深入解析Java
- mysql 中sql語句關鍵字的書寫順序與執行順序MySql
- 第2章 順序表及其順序儲存
- [轉] Oracle資料庫中建立表時怎樣考慮列順序Oracle資料庫
- Java之執行緒的優先順序Java執行緒
- java繼承關係下執行順序Java繼承
- 九、 Java程式初始化的順序(二)Java
- Java優先順序佇列DelayedWorkQueue原理分析Java佇列
- java類內部程式碼執行順序Java
- 同花順轉股溢價率中位數獲取