2015-02-13 3 views
-1

У меня возникает проблемы удаляемого значения из моего списка:Как вывести значения из списка, с условием

// I made a scanner and 2 integers: input and devide. 
    Scanner in = new Scanner(System.in); 
    int input = in.nextInt(); 
    // I make input into an array 
    int[] ints = new int[input]; 

    // I fill the array 
    for(int i = 0; i < ints.length; i++){ 
     ints[i] = i + 1; 
    } 

    // transform it into a list 
    List<Integer> intList = new ArrayList<Integer>(); 
     for (int index = 0; index < ints.length; index++) 
     { 
     intList.add(ints[index]); 
     } 
     int devide = in.nextInt(); 

Теперь я хочу, чтобы вывести все элементы в списке для значений, которые делятся на, за исключением " devide "Вся помощь приветствуется !!!

+0

Что случилось с тем, что у вас есть? Какой у Вас вопрос? – tnw

+1

Когда вы удаляете элемент из 'List', элементы после него сдвигаются и занимают свое место. Как вы планируете обойти это? –

+0

Мне не нужно обойти это, мне просто нужно удалить значения из списка, а другие могут занять его место. – FriendlyCoder

ответ

2

Пронумеруйте значения и проверьте, делится ли деление на разделитель и составляется список всех найденных элементов. Затем удалите этот список из исходного списка.

List<Integer> deleteList = new ArrayList<>(); 
    for(int i : list){ 
     /* check if a value is divisible by divide, if so add it 
      to deleteList */ 
     if(i % divide == 0){ 
      deleteList.add(i); 
     } 
    } 

    list.removeAll(deleteList); 
0

Возможно, вы захотите немного очистить свой код. Во всяком случае, что-то вроде этого должно работать:

List<Integer> finalListToPrint = new ArrayList<Integer>(); 

    for (Integer integer : intList) { //enhanced for loop 
     if (integer % divide != 0) { 
      finalListToPrint.add(integer); // add it to list 
      System.out.println(integer); //you can also print it here 
     } 
    } 

    //use finalListToPrint 
Смежные вопросы