Here you can find the source of asArrayWith0s(int max, BitSet bits)
Parameter | Description |
---|---|
max | maximum value |
bits | a parameter |
public static int[] asArrayWith0s(int max, BitSet bits)
//package com.java2s; /*// w ww . j a v a2 s. c o m * BitSetUtils.java Copyright (C) 2019. Daniel H. Huson * * (Some files contain contributions from other authors, who are then mentioned separately.) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ import java.util.BitSet; import java.util.Iterator; public class Main { /** * gets an array in which the i-th component has value i, if and only if i is contained in bits * * @param max maximum value * @param bits * @return values and 0s */ public static int[] asArrayWith0s(int max, BitSet bits) { final int[] array = new int[max + 1]; for (Integer t : members(bits)) array[t] = t; return array; } /** * iterable over all members * * @param set * @return members */ public static Iterable<Integer> members(BitSet set) { return () -> new Iterator<Integer>() { private int i = set.nextSetBit(0); @Override public boolean hasNext() { return i != -1; } @Override public Integer next() { int result = i; i = set.nextSetBit(i + 1); return result; } }; } }