2017-04-14 12 views
1

こんにちはと各配列の文字列を比較します私はこの文字列を比較したい場合はint型

int型の変数が含まれている
private String str; 

public String str() { 
    return str; 
} 

public void str(String str) { 
    this.str = str; 
} 

str = StringUtils.collectionToCommaDelimitedString(var); 
varは配列リスト

List<Integer> var = new ArrayList<>(); 
ある

このリストに記載されているもの:

for (int hour=0; hour<24; hour++) { 
if (my conditions is ok) {   
      var.add(hour);} 

例var = [3,10,18]と結果的にstr = [3,10,18]が含まれています。私のメソッドでこの文字列と0〜23の時を比較し、等しいならば1を返します。各一つまたは0

@Override 
public Map<String, Object> my() { 
    List<Integer> test = new ArrayList<>(); 
    for (int hour=0; hour<23; hour++) { 
     if (.......... conditions TO DO){  
      test.add(1); 
     } 
     else { 
      test.add(0); 
     } 

    } } 

私が行わしたいこの場合、テスト結果の例:

テスト= [0、0、0、1、0、0、0、0、1、0 、0、0、0、0、0、0、0、0、1、0、0、0、0]

+1

私は両方のあなたのメソッドの名前を変更することから始めます。あなたのフィールドと同じ名前のメソッドを持つことは十分に悪いです - フィールドの値を返すメソッドと、同じものと呼ばれる*新しい*値をフィールドに割り当てる別のメソッドを持つ1つのメソッドを持つことは、本当に悪い考えです。次に、最初のコードが何が他のものと関係しているかは不明です。 [mcve]を提供し、できるだけ明確な質問をしてください。 –

+0

整数の文字列表現を文字列と比較するのは大したことではありません。より興味深いのは、なぜ「そんなように比較する必要があるのですか」の問題ですか?私は心の中でそれをリファクタリングしたいと思います:あなたは数値をすぐそこに持っています。それらをインデックスとして使用してリストを記入することは簡単ではありません。 –

+0

また、戻り値は何ですか? '地図'はどこですか? –

答えて

0

あなたは反復かどうかを確認するためにjava.util.Listcontains(Object o)方法を使用することができます3210はList<Integer> varに含まれています。

if (var.contains(hour)){  

hourObjectが、原始的intではないこと。オートボクシングはIntegerに自動的に変換されます。

方法はそうだろう。

@Override 
public Map<String, Object> my() { 
    List<Integer> test = new ArrayList<>(); 
    for (int hour=0; hour<23; hour++) { 
     if (var.contains(hour)){  
      test.add(1); 
     } 
     else { 
      test.add(0); 
     } 

    } 
} 
+0

ありがとうございます –

関連する問題