首页  

aerospike lua 构建有序列表     所属分类 aerospike 浏览量 986
dataList  可以为字符串或数字  
保证类型要一致

local function putIntoSortedList(dataList, value)
    if ( value == nil) then
        return
    end
    local size = list.size(dataList);
    if (size <= 0) then
        list.append(dataList,value)
        return
    end

    local index = 1

    while (true) do

        if (index > size) then
            list.append(dataList,value)
            return
        end

        if (value <= dataList[index]) then
            list.insert(dataList, index, value)
            return
        end
        index = index+1

    end

end

-----
function buildSortedList(rec,params)
    local dataList = list()
    if(params==nil) then
        return dataList
    end
    for item in list.iterator(params) do
        if(item~=nil) then
            putIntoSortedList(dataList, item)
        end
    end

    return dataList
end



--------

String ns = "namespsasce1";
String set = "testdataset";
String pk = "BuildSortedListTest_key1";
        
String packageName = "testlua";
String functionName = "buildSortedList";        
        
IAerospikeClient client = AsClientUtil.getClient();
System.out.println("client=" + client);
Key key = new Key(ns, set, pk);
  
List params = new ArrayList<>();
params.add("9");
params.add("10");
params.add("7");
params.add("19");
params.add("110");
           
Object result = client.execute(null, key, packageName, functionName,Value.get(params));
System.out.println("params=" + params);

System.out.println(functionName + ".result=" + result);



输出结果
params=[9, 10, 7, 19, 110]
buildSortedList.result=[10, 110, 19, 7, 9]



可以直接使用lua内置的table.sort lua table 排序
aerospike udf 使用之 list

上一篇     下一篇
jdk16 ZGC 改进

字符串编辑距离 Levenstein edit distance

最简单的RPC框架实例

接口幂等几种实现

java NIO 服务端例子2

Spring容器初始化过程