1
我有一個String [] allEmps;字符串數組所有的emps;如何獲得String [] A - String [] B即所有在A中但不在B中的元素,在java中?
String [] allEmps = StringUtil.convertCommaStringToArray(listOfEmpsCommaSep, ",");
我有另一種的String [] EmpsWithCompensationDefined
String [] listOfEmpsWithCompDefined = DBUtility.selectFieldAndReturnAsStringArray(QueryToGetEmpsWhomCompIsDefined, con);
現在,我想誰補償不即是在A,但不是B.
解決方案的條目定義員工:我可以遍歷這兩個數組並獲得差異。但是這將是O(n^2)複雜。有沒有其他方式的漸近複雜性?
編輯:
ArrayList listOfFilteredEmps = new ArrayList();
for(int j =0;j<allEmps.length;j++){
boolean isMatched = false;
for(int i=0;i<listOfEmpsWithCompDefined.length;i++){
if(allEmps[j]==listOfEmpsWithCompDefined[i]){
isMatched = true;
}
}
if(!isMatched){
if(listOfFilteredEmps!=null && listOfFilteredEmps.size()==0){
listOfFilteredEmps.add(allEmps[j]);
}else{
listOfFilteredEmps.add(","+allEmps[j]);
}
}
}
嘗試分享您的代碼你做了什麼! – 2014-12-04 05:33:34