Constructs a new BitSet of given size whose set bits are specified by indices . - Java java.util

Java examples for java.util:BitSet

Description

Constructs a new BitSet of given size whose set bits are specified by indices .

Demo Code

/*******************************************************************************
 *   Copyright 2014 Analog Devices, Inc.
 *
 *   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.//from ww  w  . ja va 2  s  . c o  m
 ********************************************************************************/
//package com.java2s;
import java.util.BitSet;

public class Main {
    public static void main(String[] argv) throws Exception {
        int size = 2;
        int indices = 2;
        System.out.println(bitsetFromIndices(size, indices));
    }

    /**
     * Constructs a new {@link BitSet} of given {@code size} whose set bits are specified
     * by {@code indices}.
     * 
     * @throws IndexOutOfBoundsException if any index is negative or not less than {@code size}.
     * @throws IllegalArgumentException if any index is specified more than once.
     * @see #bitsetToIndices
     */
    public static BitSet bitsetFromIndices(int size, int... indices) {
        final BitSet bitset = new BitSet(size);

        for (int index : indices) {
            if (index < 0 || index >= size) {
                throw new IndexOutOfBoundsException(String.format(
                        "Index %d out of range [0, %d]", index, size - 1));
            }

            if (bitset.get(index)) {
                throw new IllegalArgumentException(String.format(
                        "Duplicate index %d", index));
            }

            bitset.set(index);
        }

        return bitset;
    }
}

Related Tutorials