Convert Object to Iterable - Java java.util

Java examples for java.util:Iterable Convert

Description

Convert Object to Iterable

Demo Code

/*//from   w w w  . ja  v  a2s .  co  m
 * Copyright 2014 tetsuo.ohta[at]gmail.com
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import java.lang.reflect.Array;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;

public class Main{
    public static void main(String[] argv){
        Object obj = "java2s.com";
        System.out.println(toIterable(obj));
    }
    public static Iterable<?> toIterable(final Object obj) {
        if (obj == null) {
            return null;
        } else if (obj instanceof Iterable) {
            return (Iterable<?>) obj;
        } else if (obj.getClass().isArray()) {
            return new Iterable<Object>() {
                @Override
                public Iterator<Object> iterator() {
                    return new ImmutableIterator<Object>() {
                        final int LENGTH = Array.getLength(obj);
                        int index = 0;

                        @Override
                        public boolean hasNext() {
                            return index < LENGTH;
                        }

                        @Override
                        public Object next() {
                            return Array.get(obj, index++);
                        }
                    };
                }
            };
        }
        return null;
    }
}

Related Tutorials