Как в ListView повторно выводить массив из 3х элементов 5 раз?

Читаю книгу по Android. По этому приложению, создал ListFragment которая выводит массив состоящий из 3 объектов. В принципе приложение нормально работает. В списке выводятся названия трех машин. Теперь я хочу чтобы эти машины повторно выводились еще 5 раз к примеру. Организую второй цикл for, и в нее вкладываю первый цикл for, который выводит модели трех машин, но не помогает.

Вот часть кода который выводит модели трех машин:

String[] namesCar = new String[Data.cars.length];

for (int i = 0; i < namesCar.length; i++) {
    namesCar[i] = Data.cars[i].getNameCar();
}

Вот рабочий скриншот:

введите сюда описание изображения

Вот моя часть кода, которая должна повторять вывод этих машин 5 раз, но код не работает:

String[] namesCar = new String[Data.cars.length];

    for (int k = 0; k < 5; k++) {
        for (int i = 0; i < namesCar.length; i++) {
            namesCar[i] = Data.cars[i].getNameCar();
        }
    }

Ответы (1 шт):

Автор решения: Вася Воронцов

Проверьте свой код: в нём нигде не используется k, а i принимает значения от 0 до Data.cars.length-1. Весьма логично, что массив до сих пор содержит только 3 значения (а ведь больше он и не вместит, его длина по-прежнему равна Data.cars.length).

  1. Увеличьте размер заполняемого массива (число 5 соответствует желаемому количеству повторяющихся элементов):
String[] namesCar = new String[Data.cars.length*5];
  1. Используйте переменную k (теперь будут заполняться элементы массива с индексами от 0 при i=0 и k=0 до 14 при k=4 и i=2):
for (int k = 0; k < 5; k++) {
    for (int i = 0; i < Data.cars.length; i++) {
        namesCar[k*Data.cars.length+i] = Data.cars[i].getNameCar();
    }
} 

Пример работы на js:

//Ваш класс автомобиля
class Car {
    constructor(name) {
        this.name = name;
    }
    getNameCar() {
        return this.name;
    }
}

//Ваш класс данных
let Data = {
    //Массив экземпляров класса автомобилей
    cars: [new Car("Koyota"), new Car("Folks"), new Car("Nazda")]
}

//Выходной массив
let namesCar = [];

//Преобразования
for (let k = 0; k < 5; k++) {
    for (let i = 0; i < Data.cars.length; i++) {
        namesCar[k*Data.cars.length+i] = Data.cars[i].getNameCar();
    }
}

//Вывод массива
console.log(namesCar);

→ Ссылка