成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Drools規(guī)則引擎-判斷集合(List)是否包含集合

Cc_2011 / 3326人閱讀

摘要:問題場景在使用規(guī)則引擎時,有朋友會遇到這樣的問題,就是在部分判斷的兩個參數(shù)都是集合類型,比如兩個,此時要判斷一個集合是否包含另外一個集合的內容。

問題場景

在使用Drools規(guī)則引擎時,有朋友會遇到這樣的問題,就是在when部分判斷的兩個參數(shù)都是集合類型,比如兩個List,此時要判斷一個集合是否包含另外一個集合的內容。

拿一個具體的例子來說明,我的公眾號《程序新視界》接受商務合作有一定的要求,設置了對應行業(yè)的黑名單,比如:房地產、游戲和P2P領域的合作不接。

那么此時,有一個廣告商準備投放廣告,而它投放的廣告領域涵蓋了教育和P2P,那么,在進行規(guī)則篩選時就出現(xiàn)了要判斷提供的集合中的元素是否包含在被排除領域里面。如果其中一個元素包含,則觸發(fā)規(guī)則。

代碼實現(xiàn)

這里用代碼片段來演示此功能的實現(xiàn)。
兩個集合相關代碼:

public class Company {

    private List scopes;

    public List getScopes() {
        return scopes;
    }

    public void setScopes(List scopes) {
        this.scopes = scopes;
    }
}
Company company = new Company();
List targetList = new ArrayList<>();
targetList.add("教育");
targetList.add("P2P");
company.setScopes(targetList);

List blackList = new ArrayList<>();
blackList.add("房地產");
blackList.add("游戲");
blackList.add("P2P");

kieSession.insert(company);
kieSession.insert(blackList);

kieSession.fireAllRules();

Drools drl 中實現(xiàn)對此內容的比較有兩種方案,一種方案是直接調用外部的工具類進行比較,采用global進行引入,這里不再介紹,另外一種就是采用自定義function進行匹配處理,然后將結果返回給when部分進行處理。

規(guī)則代碼:

package com.compareList

import com.secbro2.drools.entity.Company
import java.util.List
import java.util.ArrayList

rule "compareListRule"

when
    $blackList: List();
    $company: Company($scopList:scopes,toCompareList(scopes,$blackList));

then

    System.out.println("黑名單規(guī)則觸發(fā)!");

end

function Boolean toCompareList(List targetList, List blackList){

    Boolean flag = false;
    for(Object obj : targetList){
        if(blackList.contains(obj)){
            flag  = true;
            break;
        }
    }
    return flag;
}

其中toCompareList提供的對比的功能,而該功能的結果又用作Company的過濾條件來進行篩選。如果篩選結果符合,說明兩個集合里面有交叉部分,因此出發(fā)規(guī)則進行相應處理。

更多規(guī)則引擎相關視頻教程可觀看:

CSDN學院:《Drools7系列優(yōu)惠套餐》

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://m.hztianpu.com/yun/75396.html

相關文章

  • Drools規(guī)則引擎-如果判斷某個對象中的集合是否包含指定的值

    摘要:規(guī)則引擎集合相關處理在實際生產過程中,有很多關于集合的處理場景,比如一個對象中包含有一個集合,而需要判斷該集合是否包含某個值。而規(guī)則引擎也提供了多種處理方式,比如通過等進行操作,比較。然后,通過關鍵字來遍歷中的值,獲得符合條件的。 規(guī)則引擎集合相關處理 在實際生產過程中,有很多關于集合的處理場景,比如一個Fact對象中包含有一個集合,而需要判斷該集合是否包含某個值。而Drools規(guī)則引...

    yuxue 評論0 收藏0
  • Drools規(guī)則引擎-memberOf操作

    摘要:今天這批文章就帶大家了解一下規(guī)則引擎中比較操作符之一的。對象類代碼調用規(guī)則引擎代碼歡迎張三歡迎張三張三規(guī)則代碼,這里模擬了兩種場景的規(guī)則判斷規(guī)則觸發(fā)規(guī)則觸發(fā)執(zhí)行結果規(guī)則觸發(fā)規(guī)則觸發(fā) 場景 規(guī)則引擎技術討論2群(715840230)有同學提出疑問,memberOf的使用過程中如果,memberOf之后的參數(shù)不是集合也不是數(shù)組,而是格式如1,2,3,4的字符串,那么Drools是否會講其轉...

    MrZONT 評論0 收藏0
  • 網易考拉規(guī)則引擎平臺架構設計與實踐

    摘要:比如我們的指標是最近分鐘的同一用戶的下單量,那么我們就需要實現(xiàn)一種類似的滑動窗口算法,以便任何時候都能拿到最近分鐘的數(shù)據(jù)。 此文已由作者肖凡授權網易云社區(qū)發(fā)布。 歡迎訪問網易云社區(qū),了解更多網易技術產品運營經驗。 背景考拉安全部技術這塊目前主要負責兩塊業(yè)務:一個是內審,主要是通過敏感日志管理平臺搜集考拉所有后臺系統(tǒng)的操作日志,數(shù)據(jù)導入到es后,結合storm進行實時計算,主要有行為查詢...

    Berwin 評論0 收藏0
  • Drools規(guī)則引擎-如果Fact對象參數(shù)為null如何處理

    摘要:比如對一個企業(yè)進行信用評級,涉及三個維度企業(yè)年齡企業(yè)注冊資本與企業(yè)法人年齡。增加判斷如果是將三個業(yè)務的判斷放在一個規(guī)則當中,那么對對象為的情況就需要特殊處理了。 問題場景 在技術交流群(QQ:715840230)中有同學提出這樣的問題: 往kiesession里面?zhèn)魅雈act,如果不做輸入檢查fact里面有些字段可能是null值。但是如果在外面做輸入檢查,規(guī)則一改,fact所需要的字段...

    marser 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<