转换函数
各种 Java SequenceIterator 方法接受多种输入序列参数,并生成如下面表格中所述的结果序列或标量类型:
- SequenceIterator histogram(long low, long high, int nIntervals) :同下
- SequenceIterator histogram(double low, double high, int nIntervals):为对象的序列构建一个直方图。应指定输入序列的最小值(包含)和最大值(不包含),以及区间(直方图列)的数量。(区间数量不应大于瓦片大小)
- void sort(Object arr, long[] permutation, Sequence.Order order):对先前使用 get() 提取的序列元素进行排序,并构建一个排列数组(即位置数组),以便能够访问其他序列(同样提取到数组中的)的元素。
示例
以下是一个展示 sort 方法的示例代码片段:
public static void sort(Connection con)
{
con.startTransaction(Database.TransactionType.ReadOnly);
System.out.println("--- SORT ----------------------");
// Iterate through all objects
Cursor<Quote> cursor = new Cursor<Quote>(con, Quote.class, "symbol");
for (Quote quote : cursor)
{
// Extract data into array
int count = (int)quote.volume.count();
int[] volumes = new int[count];
float[] prices = new float[count];
long permutation[] = new long[count];
int len = quote.volume.iterator().get(volumes);
assert(len == count);
len = quote.close.iterator().get(prices);
assert(len == count);
// Execute query
quote.volume.iterator().sort(volumes, permutation, Sequence.Order.Descending);
for (int i = 0; i < count; i++)
{
int j = (int)permutation[i];
System.out.format("%s: volume=%d, price=%.3f\n", quote.symbol, volumes[j], prices[j]);
}
}
con.commitTransaction();
}