2016-05-05 19 views
3

以下のコードでは、数字がArrayListに2回以上出現するかどうかを確認する必要があります。ユーザーは相談する番号を入力し、arrayに複数のメッセージがある場合は、「複数回表示されます」と表示されます。私はこれをやろうとしていますが、どうしたらいいのか分かりません。ユーザー入力を伴うarrayList内に複数回表示

これはmainクラスです:

public static boolean moreThanOne(ArrayList<Integer> list, int number) { 
    for (Integer in : list) { 
     if (list.contains(number) && in==in) { 
      return true; 
     } 
    } 
    return false; 
} 

答えて

3

あなたはこのコードを使用することができます:

ArrayList<Integer> list = new ArrayList<>(); 
    list.add(3); 
    list.add(2); 
    list.add(7); 
    list.add(2); 

    System.out.println("Type a number: "); 
    int number = Integer.parseInt(sc.nextLine()); 
    if (Metodos.moreThanOne(list, number)) { 
     System.out.println(number + " appears more than once."); 
    } else { 
     System.out.println(number + " does not appear more than once."); 
    } 

は、これは方法です

if (list.lastIndexOf(element) != list.indexOf(element)) { 
    return true; // you have at least two numbers 
} else { 
    return false; // element is not exist or you have only one element 
} 
+2

これはなぜ直接ですか? 'return list.lastIndexOf(element)!= list.indexOf(element);' –

+0

@RolandIllig要求された要素が存在しない場合、左から右から –

+1

が得られます。より多くの行があります。 –

1
public static boolean moreThanOne(ArrayList<Integer> list, int number) 
    { 
     int count = 0; 
     for (Integer in : list) { 
      if (number == in) { 
       count++; 
      } 
     } 
     if(count > 1) 
     return true; 
     else 
     return false; 
     } 
    } 
0

あなたがこれを行うことができます:

public class StartHere { 
public static void main(String[] args) { 

    ArrayList<Integer> list = new ArrayList<>(); 
    list.add(3); 
    list.add(2); 
    list.add(7); 
    list.add(2); 

    Scanner scanner = new Scanner(System.in); 

    System.out.print("Type a number: "); 
    String input = scanner.nextLine(); 
    int number = Integer.parseInt(input); 
    scanner.close(); 
    if(moreThanOnce(list, number)){ 
     System.out.println("The number appears more than once."); 
    }else{ 
     System.out.println("The number doesn't appear more than once."); 
    } 

} 

public static boolean moreThanOnce(ArrayList<Integer> list, int number) { 
    boolean bool = false; 
    int counter = 0; 
    for (Integer value : list) { 
     if (value == number) { 
      counter++; 
     } 
    } 
    if (counter > 1){ 
     bool = true; 
    } 
    return bool; 
} 
} 

ちょっとしたヒント:あなたの英語を上達させる必要があるので、あなたの質問を理解しやすくなります。これを行う最善の方法は、この言語で書かれた本を読むことです。

+0

私はあなたが3または7を入力した場合、それを試して、doesntの仕事は、メッセージ "複数回表示されます。その番号がリストにあるかどうかを確認するだけです。 – Exit

+0

Ooooh ...もう一度、私はそれを修正します。 – SpaceCore186

+0

修正されました。今すぐやってみて下さい。 – SpaceCore186

0
System.out.println("Type a number: "); 
    Set<Integer> set = new HashSet<Integer>(list); 
    Scanner scanner = new Scanner(System.in); 
    int number = Integer.parseInt(scanner.nextLine()); 

    if (!set.add(number)) { 
     System.out.println(number + " appears more than once."); 
    } else { 
     System.out.println(number + " does not appear more than once."); 
    } 
関連する問題