Цикл одного массива с другим массивом в Java

1

У меня два массива

1) String[] images = {"#1","#2", "#3", "#4", "#5" };

2) String[] items = {"1","2", "3", "4", "5", "6", "7", "8" };

Элементы могут отличаться, но массив изображений фиксирован. Я отобразил выходное отображение как

 image 1 => item 1
 image 2 => item 2 
 image 3 => item 3
 image 4 => item 4
 image 5 => item 5
 image 1 => item 6
 image 2 => item 7
 image 3 => item 8

и так далее. Моя работа заключается в следующем,

public static void main(String[] args) {
            for( int y=0;y< items.length;y++ ){
            for( int i=0;i< images.length;i++ ){

                if( y >= images.length ){
                    int remaining = items.length % images.length;
                    System.out.println("remaining..." + remaining);
                    for( int x=0;x<=remaining;x++ ){
                        System.out.println( "image" +images[x]+"=> item =>"+items[x]);
                    }
                    return;
                }
                System.out.println( "image" +images[y]+"=> item =>"+items[y]);
                break;
            }
        }
    }
  • 0
    Вы ничего не пробовали. Выполните цикл по более длинному массиву и используйте оператор по модулю ( % ) для создания левого индекса.
  • 0
    изображения 1,2,3 сопоставлены с более чем одним элементом, что в основном мешает вам использовать реализацию карты.
Показать ещё 1 комментарий
Теги:
arrays

1 ответ

6
Лучший ответ

Попробуйте этот код:

for (int i=0 ; i<items.length ; i++) {
    System.out.println(images[i%images.length] + " => " + items[i]);
}

i%images.length дает остальную часть деления i, т.е. вашу позицию в массиве items, с длиной массива images. Таким образом, images[i%images.length] проходят через массив images.

  • 0
    Это сработало !!! Большое спасибо.
  • 0
    @ARP Не за что :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню