[英]Algorithm logic
我被困在一個問題,沒有把這里邏輯,希望你們能幫助我。 有人問過同樣的問題在這里計算器,我無法找到該鏈接,它非常類似於它被張貼查詢
我generatng的報告,其中用戶選擇日期/日期和值是從數據庫中獲取取出並在報告中顯示的基礎上。 Apache的POI被用於生成Excel報表。
我有4個字段/列
ID Date true/false someaction
如果用戶選擇只有一個或一個以上的日期,該方案需要所有的日期,並把它們存儲在一個ArrayList和迭代,然后它來獲得存儲在數據庫中選定的日期數據
偽代碼
String checkLastCell = null;
for (Date listOfdates : datesL){
//query gets fired to the database by sending listOfdates as a parameter
for ( T tt : t) {
i = tt.getId(); //ID
j = tt.getDate(); //Date
k = tt.getTrueFalse(); // truefalse
and setting them on cells
for column l , i am writing some action based on the
l= Yes or No //someaction Yes or No
對於ID = 1,如果真在truefalse列設置,我需要寫在是列Someaction
在接下來的迭代中,如果ID = 2,而假的truefalse列設置,我會在someaction欄寫不行,
如果在接下來的迭代中,ID = 1和虛假truefalse列設置,我需要檢查ID = 1之前的動作,然后寫的動作 - >沒有(因為它從真更改為false)
如果(lastcell是空&& t.getTrueFalse()。等於( “真”)|| lastcell不是null && t.getTrueFalse()。等於( “真”))如果要是(lastcell是空&& t.getTrueFalse() .equals( “假”)|| lastcell不是null && t.getTrueFalse()。等於( “假”)){設定行動NO} .....一些邏輯需要寫在這里。
i++; // increment the row } } }
我需要建議/幫助寫的偽代碼/算法中
您只需要一個HashMap(java)來保存包含ID的最后一行的索引。 這是算法/實現。
List<Row> dbResults = getDatabaseResults(listOfDates);
HashMap<int, int> idToLastIndex = new HashMap<int, int>();
for(int x=0; x<dbResults.size(); x++) {
// values
i = dbResults[x].getID();
j = dbResults[x].getDate();
k = dbResults[x].getTrueFalse();
// get action value
if(idToIndex.containsKey(i) && k == dbResults.get(idToLastIndex.get(i)).getTrueFalse()) {
// if there's an old value and it equals the new one
a = "NO ACTION TAKEN";
} else if(k == true) {
a = "YES";
} else {
a = "NO";
}
idToLastIndex.put(i, x); // ID->Index
}
注意上面的代碼是用Web瀏覽器編寫的,未經測試,可能會出現語法錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.