Scanner in = new Scanner(System.in); 

        String v = in.next();    //문자열 v를 입력받는다.


        String[] rs = v.split("");    //split 이용하여 입력받은 문자열 자르기 //입력된 String 숫자 만큼 배열 선언

        int[] Array = new int[rs.length];  //rs배열 원소의 개수


        int b = 0;

 

    /* 배열의 길이만큼 for반복하게 되는데, 

     배열의 0번째 인덱스 위치의 값부터 꺼내어서 변수에 저장후 반복적으로 실행하고자 하는 명령문을 수행하는 원리.*/        

        

        for( String a : rs ){    //rs 배열의 모든 원소를 하나씩 a에 담아 실행 //향상된 for문이다 => for(자료형 변수 : 배열명) 

            int num = Integer.parseInt(a); //a는 문자열타입이므로 정수타입으로 변환 // 이를 이용하여 배열의 값을 간단하게 불러옴

            Array[num]++;                          //배열의 길이 만큼 반복한다.

        }


        for( int number : Array ){   //각 배열의 숫자가 1이면 b 에 증가

            System.out.println(number);

            if( number == 1 ){

                ++b;

            }

        }


        if( b == 10 ){

            System.out.println("true");

        }else{

            System.out.println("false");

        }


    }

요런 코드인데 밑에 for 문2개가  돌아가는 알고리즘하고 방식이 좀 헷갈리는데 설명해줄 수 있음? 배열 들어오니까 자꾸 헷갈리네