91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

使用antlr規(guī)則引擎解析sql成對象.里面只有查詢語句,但是也預(yù)留了update,delete,insert等語句的接口.可以非常方便的擴(kuò)展

資源截圖

代碼片段和文件信息

/**
?*?
?*/
package?com.hiyouyu.core.struct;

import?java.io.Serializable;
import?java.util.Arrays;
import?com.hiyouyu.core.struct.BinaryHeap.Heap;

/**
?*?二叉堆

?*?堆的性質(zhì):?在起始索引為?0?的“堆”中:?

?*?1)?堆的根節(jié)點(diǎn)將存放在位置?0?

?*?2)?節(jié)點(diǎn)?i?的左子節(jié)點(diǎn)在位置?2?*?i?+?1?

?*?3)?節(jié)點(diǎn)?i的右子節(jié)點(diǎn)在位置?2?*?i?+?2?

?*?4)?節(jié)點(diǎn)?i?的父節(jié)點(diǎn)在位置?floor(?(i?-?1)?/?2?)?:?注?floor?表示“取整”操縱
?*?
?*?在起始索引為?1?的“堆”中:?

?*?1)?堆的根節(jié)點(diǎn)將存放在位置?1?

?*?2)?節(jié)點(diǎn)?i?的左子節(jié)點(diǎn)在位置?2?*?i?

?*?3)?節(jié)點(diǎn)?i?的右子節(jié)點(diǎn)在位置?2?*i?+?1?

?*?4)?節(jié)點(diǎn)?i?的父節(jié)點(diǎn)在位置?floor(?i?/?2?)?:?注?floor?表示“取整”操縱

?*?
?*?以起始索引為1的堆比較好算

?*?
?*?可以參考:http://wxg6203.iteye.com/blog/668968
?*?
?*?@author?rain
?*/
public?class?BinaryHeap??implements?Serializable?{
private?static?final?long?serialVersionUID?=?9073021753354720234L;

private?T[]?heaps?=?null;
private?int?size?=?0;
private?int?DEFAULT_SIZE?=?10;

@SuppressWarnings(“unchecked“)
public?BinaryHeap(int?n)?{
if?(++n?>?DEFAULT_SIZE)?{
DEFAULT_SIZE?=?n;
}
heaps?=?(T[])?new?Heap[DEFAULT_SIZE];
}

@SuppressWarnings(“unchecked“)
public?BinaryHeap()?{
heaps?=?(T[])?new?Heap[DEFAULT_SIZE];
}

/**?對整個堆進(jìn)行堆化*/
public?void?heapify()?{
for?(int?i?=?size?/?2;?i?>=?1;?i--)?{
fixDown(i);
}
}

/**
?*?是否包含{@link?T}

?*?
?*?@param?value
?*?@return?返回傳入value所在位置如果沒有找到則返回-1
?*/
public?int?contain(T?heap)?{
if(heap?==?null){
return?-1;
}

for(int?i?=?1;i? if?(heap.equals(heaps[i]))?{
return?i;
}
}
return?-1;
}

/**?返回所有數(shù)據(jù)*/
public?T[]?toArray()?{
return?(T[])?heaps;
}

/**?獲取根節(jié)點(diǎn)?*/
public?T?first()?{
return?heaps[1];
}

/**?獲取最后一個節(jié)點(diǎn)?不保證最后一個節(jié)點(diǎn)是最大的只能保證根節(jié)點(diǎn)是最大或最小的?*/
public?T?last()?{
return?heaps[size];
}

/**?彈出第一個節(jié)點(diǎn)?*/
public?T?removeFirst()?{
T?f?=?heaps[1];
heaps[1]?=?heaps[size];
heaps[size--]?=?null;
fixDown(1);
return?f;
}

/**?返回堆中的個數(shù)*/
public?int?size()?{
return?size;
}

/**
?*?下移
?*?
?*?@param?k
?*????????????目標(biāo)節(jié)點(diǎn)的索引
?*/
private?void?fixDown(int?k)?{
int?j;//?目標(biāo)節(jié)點(diǎn)的(左/右)子節(jié)點(diǎn)索引
while?((j?=?k?<?0)?{
//?假如目標(biāo)節(jié)點(diǎn)k的左子節(jié)點(diǎn)大于目標(biāo)節(jié)點(diǎn)k的右子節(jié)點(diǎn),那么重置子節(jié)點(diǎn)索引為較小的那個
if?(j??heaps[j?+?1].getValue())
j++;
if?(heaps[k].getValue()?<=?heaps[j].getValue())
break;
swap(heaps?k?j);
k?=?j;//?非遞回式下移搜索
}
}

/**
?*?交換數(shù)據(jù)中的位置
?*?
?*?@param?a
?*????????????數(shù)組
?*?@param?i
?*????????????位置I
?*?@param?j
?*????????????位置J
?*/
private?void?swap(T[]?a?int?i?int?j)?{
T?tmp?=?a[i];
a[i]?=?a[j];
a[j]?=?tmp;
}

/**?向堆中添加元素堆的根節(jié)點(diǎn)的索引是從1開始的?*/
public?void?add(T?o)?{
if?(size?+?1?==?heaps.length)
heaps?=?Arrays.copyOf(heaps?heaps.length?< heaps[++size]?=?o;//?堆根節(jié)點(diǎn)的索引從1開始保存數(shù)組的第一個值為NULL
//?每次新增元素后可能會破壞堆的性質(zhì),所以要進(jìn)行上移操縱。
//?假如當(dāng)前新增的元素比它的父節(jié)點(diǎn)要大,那么就要把當(dāng)前元素和它的父節(jié)點(diǎn)進(jìn)行交換,這么反復(fù)的直到根節(jié)點(diǎn)位置。這就是上移。
fixUp(size);
}

/**
?*?上移:即我們把該節(jié)點(diǎn)移動到它的父節(jié)點(diǎn)的位置,而讓它的父節(jié)點(diǎn)到它的位置上,然后我們繼續(xù)判定該節(jié)

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-05-29?09:26??.settings\
?????文件?????????522??2012-04-17?10:30??.settings\org.deved.antlride.core.prefs
?????文件??????????88??2012-04-17?10:30??.settings\org.eclipse.core.resources.prefs
?????文件??????????83??2012-04-17?10:30??.settings\org.eclipse.core.runtime.prefs
?????目錄???????????0??2012-05-29?09:26??src\
?????目錄???????????0??2012-05-29?09:26??src\lib\
?????文件?????2388361??2012-04-17?10:35??src\lib\antlr-3.4-complete.jar
?????目錄???????????0??2012-05-29?09:26??src\main\
?????目錄???????????0??2012-05-29?09:26??src\main\java\
?????目錄???????????0??2012-05-29?09:26??src\main\java\com\
?????目錄???????????0??2012-05-29?09:26??src\main\java\com\hiyouyu\
?????目錄???????????0??2012-05-29?09:26??src\main\java\com\hiyouyu\core\
?????目錄???????????0??2012-05-29?09:26??src\main\java\com\hiyouyu\core\struct\
?????文件????????4570??2012-05-24?23:58??src\main\java\com\hiyouyu\core\struct\BinaryHeap.java
?????目錄???????????0??2012-05-29?09:26??src\main\java\com\hiyouyu\core\util\
?????目錄???????????0??2012-05-29?09:26??src\main\java\com\hiyouyu\core\util\antlr\
?????目錄???????????0??2012-05-29?09:26??src\main\java\com\hiyouyu\core\util\antlr\sql\
?????目錄???????????0??2012-05-29?09:26??src\main\java\com\hiyouyu\core\util\antlr\sql\bean\
?????文件????????1173??2012-04-17?10:30??src\main\java\com\hiyouyu\core\util\antlr\sql\bean\ColumnName.java
?????文件????????4114??2012-04-17?10:30??src\main\java\com\hiyouyu\core\util\antlr\sql\bean\Condition.java
?????文件????????1753??2012-04-17?10:30??src\main\java\com\hiyouyu\core\util\antlr\sql\bean\ConditionItem.java
?????文件?????????759??2012-04-17?10:30??src\main\java\com\hiyouyu\core\util\antlr\sql\bean\From.java
?????文件????????1403??2012-04-17?10:30??src\main\java\com\hiyouyu\core\util\antlr\sql\bean\Join.java
?????文件????????2653??2012-04-17?10:30??src\main\java\com\hiyouyu\core\util\antlr\sql\bean\MySql.java
?????文件????????1112??2012-04-17?10:30??src\main\java\com\hiyouyu\core\util\antlr\sql\bean\Order.java
?????文件????????1464??2012-04-17?10:30??src\main\java\com\hiyouyu\core\util\antlr\sql\bean\OrderItem.java
?????文件????????2367??2012-04-17?10:30??src\main\java\com\hiyouyu\core\util\antlr\sql\bean\Search.java
?????文件????????1553??2012-04-17?10:30??src\main\java\com\hiyouyu\core\util\antlr\sql\bean\SearchItem.java
?????文件????????1455??2012-04-17?10:30??src\main\java\com\hiyouyu\core\util\antlr\sql\bean\Select.java
?????文件????????1812??2012-04-17?10:30??src\main\java\com\hiyouyu\core\util\antlr\sql\bean\SelectItem.java
?????文件????????1565??2012-04-17?10:30??src\main\java\com\hiyouyu\core\util\antlr\sql\bean\Table.java
............此處省略37個文件信息

評論

共有 條評論

相關(guān)資源