How to create a List (or Array) inside the another List (or Array)?

A list is a collection of similar or different types of data elements.
Dynamic Language like python can store different data types in the same list, but for statically typed language like C++, a list means a collection of similar data types. Â Every list item can be accessed by its indices, and for most of the languages (python, java, C++, etc.) indices start from 0.
An array is the same as the list for dynamic language, but for a language like C++ where for a list dynamic memory allocation is done by the compiler, for array user has to do it manually.
Implementation of List inside List using C++:
C++
// C++ code to create a list inside another listÂ
#include <bits/stdc++.h>using namespace std;Â
int main(){    // Inside this list the another list    // will be created/inserted.    // Also ListofList only can store    // vector<int> datatype, unlike    // python which can store anything.    list<list<int> > ListofList;Â
    // The list to be inserted,    // normal integer type list.    list<int> insertedList;    for (int i = 1; i < 5; i++) {        insertedList.push_back(i);    }Â
    // Pushing insertedList inside ListofList    ListofList.push_back(insertedList);    ListofList.push_back(insertedList);Â
    for (auto it = ListofList.begin();         it != ListofList.end(); it++) {        for (int j : *it)            cout << j << " ";        cout << endl;    }    return 0;} |
Java
// Java code to create a list inside another listimport java.util.*;Â
class GFG{Â
  public static void main(String[] args)  {Â
    // Inside this list the another list    // will be created/inserted.    // Also ListofList only can store    // Vector<Integer> datatype, unlike    // Java which can store anything.    ArrayList<ArrayList<Integer> > ListofList = new ArrayList<ArrayList<Integer> >();Â
    // The list to be inserted,    // normal integer type list.    ArrayList<Integer> insertedList = new ArrayList<Integer>();    for (int i = 1; i < 5; i++) {      insertedList.add(i);    }Â
    // Pushing insertedList inside ListofList    ListofList.add(insertedList);    ListofList.add(insertedList);Â
    for (ArrayList<Integer> it : ListofList){      for (int j : it)        System.out.print(j+ " ");      System.out.println();    }  }}Â
// This code is contributed by shikhasingrajput |
C#
// C# code to create a list inside another listusing System;using System.Collections.Generic;Â
public class GFG{Â
  public static void Main(String[] args)  {Â
    // Inside this list the another list    // will be created/inserted.    // Also ListofList only can store    // List<int> datatype, unlike    // C# which can store anything.    List<List<int> > ListofList = new List<List<int> >();Â
    // The list to be inserted,    // normal integer type list.    List<int> insertedList = new List<int>();    for (int i = 1; i < 5; i++) {      insertedList.Add(i);    }Â
    // Pushing insertedList inside ListofList    ListofList.Add(insertedList);    ListofList.Add(insertedList);Â
    foreach (List<int> it in ListofList){      foreach (int j in it)        Console.Write(j+ " ");      Console.WriteLine();    }  }}Â
// This code is contributed by shikhasingrajput |
1 2 3 4 1 2 3 4
Implementation of List inside List using Python:
For Dynamic Language like python Create 2 or more lists and append them inside one of the lists, And it’ll create a list inside a list,
Python3
list_1 = [1, 2, 3, 4]list_2 = [4, 7, 8, 9]list_3 = [3, 1, 4, 7]list_4 = [3, 5, 7, 11]Â
# list_2, list_3 and list_4 # have been appended inside list_1 list_1.append(list_2)list_1.append(list_3)list_1.append(list_4)Â
# As List in python can store different data types, # that's why here it able to store# integer type and List in a same list.print(list_1) |
Javascript
<script>    // JavaScript code to create a list inside another list    let list_1 = [1, 2, 3, 4];    let list_2 = [4, 7, 8, 9];    let list_3 = [3, 1, 4, 7];    let list_4 = [3, 5, 7, 11];Â
    // list_2, list_3 and list_4    // have been appended inside list_1    list_1.push(list_2)    list_1.push(list_3)    list_1.push(list_4)Â
    // As List in python can store different data types,    // that's why here it able to store    // integer type and List in a same list.    document.write(list_1)Â
    // This code is contributed by rakeshsahni</script> |
[1, 2, 3, 4, [4, 7, 8, 9], [3, 1, 4, 7], [3, 5, 7, 11]]
Creating array inside the array in C:
But for statically typed language like C one have to predefine everything like the data type of the array which stores another array.Â
For example, to create a 1D integer array inside another array, firstly, the main array should store (int*) datatype then only, another 1D array can be stored/created inside that array.
Note: Following the same way an array can be created inside another array in C++ also.
C++
// C++ code to create array inside arrayÂ
#include <bits/stdc++.h>using namespace std;#define size 5Â
int main(){    // Here is an array(dynamically allocated)    // that can store array(1-D),    // or (int*) type data    int** out_array = (int**)malloc(size * sizeof(int*));Â
    // Here is an normal integer array    // (dynamically allocated), which stores    // (int) datatype    int* temp1 = (int*)malloc(size * sizeof(int));    int* temp2 = (int*)malloc(size * sizeof(int));Â
    for (int i = 0; i < size; i++) {        temp1[i] = i; // 0, 1, 2, 3, 4        temp2[i] = i;    }Â
    // Now Creating array inside array    // by storing int* datatype    // inside the out_array    out_array[0] = temp1;    out_array[1] = temp2;Â
    cout << "After Creating array inside array " << endl;Â
    // Since there are only two    // array inside the out_array    for (int i = 0; i < 2; i++) {        for (int j = 0; j < size; j++) {            cout << out_array[i][j] << " ";        }        cout << endl;    }    return 0;} |
C
#include <stdio.h>#include <stdlib.h>#define size 5Â
int main(){    // Here is an array(dynamically allocated)    // that can store array(1-D), or    // (int*) type datat    int** out_array = (int**)malloc(size * sizeof(int*));Â
    // Here is an normal integer array    // (dynamically allocated), which    // stores (int) datatype    int* temp1 = (int*)malloc(size * sizeof(int));    int* temp2 = (int*)malloc(size * sizeof(int));Â
    for (int i = 0; i < size; i++) {        temp1[i] = i;        temp2[i] = i;    }Â
    // Now Creating array inside array    // by storing int* datatype    // inside the out_array    out_array[0] = temp1;    out_array[1] = temp2;Â
    printf("After Creating array inside array\n");Â
    // Since there are only two arrays    // inside the out_array    for (int i = 0; i < 2; i++) {        for (int j = 0; j < size; j++) {            printf("%d ", out_array[i][j]);        }        printf("\n");    }    return 0;} |
Java
// Java code to create array inside arrayÂ
class GFG{static final int size = 5;Â
public static void main(String[] args){    // Here is an array(dynamically allocated)    // that can store array(1-D),    // or (int*) type data    int [][]out_array = new int[size][size];Â
    // Here is an normal integer array    // (dynamically allocated), which stores    // (int) datatype    int []temp1 = new int[size];    int []temp2 = new int[size];Â
    for (int i = 0; i < size; i++) {        temp1[i] = i; // 0, 1, 2, 3, 4        temp2[i] = i;    }Â
    // Now Creating array inside array    // by storing int* datatype    // inside the out_array    out_array[0] = temp1;    out_array[1] = temp2;Â
    System.out.print("After Creating array inside array " +"\n");Â
    // Since there are only two    // array inside the out_array    for (int i = 0; i < 2; i++) {        for (int j = 0; j < size; j++) {            System.out.print(out_array[i][j]+ " ");        }        System.out.println();    }}}Â
// This code is contributed by shikhasingrajput |
After Creating array inside array 0 1 2 3 4 0 1 2 3 4
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



