2017-09-28 5 views
-4

JSONarrayを解析するためにループを使用しています。それは価値があるループでアンドロイドでループを使用する

と仮定、私は千回の反復を持っているとのそれぞれが5つのチェックが含まれています

try { 
      val = e.getString("x"); 
      if (!val.equals("null")) //server response, when no data 
      tmp.x = Double.valueOf(val); 
      else 
      tmp.x = 0; 
     } catch (Exception e1) { 
      tmp.x = 0; 
     } 

ここで問題は、値のチェックをより良くするためにあるので、時間の漁獲の大半は、(例えば==nullisEmpty()、呼び出されません、など...)try-catch、またはその罰金を今削除しますか?

+0

このように繰り返し回数が多いループを作成しないことをお勧めします。あなたはそれを一度ロードして一度にそれを解析すれば、はるかに良いです。 – Orvenito

+0

私は1000 poinsのようにしてループの外側で1つのtry-catchを使用すると、1つのポイントが解析できない場合、すべてのリストは空になります。 – Vadim

+0

いいえ、解析するポイントを知るには、単一の識別子が必要です。例えば正の値、> 50ポイントなど。 – Orvenito

答えて

1

ここで、値チェックをより良くする(例:== null、isEmpty()など)、try-catchまたはその罰金を今すぐ削除することですか?あなたは、サーバーから取得する結果がnull nullかではないことを主張することができるならば

は、その後、あなたはその検証後try-catchブロックを使用することができます。

ただし、hereが表示されているように、全体的なパフォーマンスにはほとんど影響しません。

関連する問題