2016-08-16 5 views
0

私の小さなJavaアプリケーションで奇妙な(少なくとも私にとっては)動作が見つかりました。 私はapp.jarをコマンドラインから実行して、単純なタスクを実行します。タスクは、指定されたリストから重複した値を見つけ出し、それらを削除することです。アプリケーションはJDK-7で開発され、JRE-7で動作します。JARを別のマシンで実行している奇妙な動作

私のPCのコマンドラインからは問題ありませんが、同じJARをWindows-7の仮想マシンで同じJARを実行し、同じJREを使って同じ重複を取り除いてもエラーは発生しません。ここで

は私のコードです:coreListがメインのリストである

public List<String> removeDuplicatedFin(List<String> coreList, 
      Map<String, String> strToRemoveMap) { 
     for (int y = 0; y < coreList.size(); y++) { 
      String str = coreList.get(y).getPosts().get(0).getMyStr(); 
      String id = coreList.get(y).getPosts().get(0).getId(); 
      if (strToRemoveMap.get(str) != null 
        && strToRemoveMap.get(str).equals(idPost)) { 
       coreList.get(y).getPosts().remove(0); 
      } 
     } 
     return coreList; 
    } 

strToRemoveMapは

どれでもアイデアやいくつかの助けてくださいを削除する値が含まれていますか?

ありがとうございます。

+2

問題は、あなたが私たちに示していないコードの一部にある可能性があります... –

+0

重複を削除する場所でコードを共有できますか? コードに何らかの問題がある必要があります。 – AmanSinghal

+0

@AmanSinghal ご返信ありがとうございます。 一度私は家にいますが、それはなぜ私のローカルPCでうまくいくのですか? コードに問題がある場合は、どこでも失敗するはずですか? – Arsench

答えて

0

ご回答いただきありがとうございます。最後に、私は私が例

if(str1.equals(str2))

で2つの文字列を比較したと私は

if(str1 == str2) 

を変更したときに、それは完璧に動作し、なぜ私にはわからないので、この異常が発生したことがわかりました。しかし、Eclipseと私のPCではequals()も使えました。

私はこの種のことについてもっと知る必要があります。

ありがとうございました。

+0

私が今までに聞いたことの中で最も驚くべきこと... –

+0

@StefanHegny私はLinuxでそれを動かそうとしていますが、他のPCでもあまりにも奇妙です。 – Arsench