List of usage examples for java.util BitSet clear
public void clear(int fromIndex, int toIndex)
From source file:Main.java
public static void main(String[] args) { BitSet bitset1 = new BitSet(8); BitSet bitset2 = new BitSet(8); // assign values to bitset1 bitset1.set(0);//from w ww.j av a 2 s. c o m bitset1.set(1); bitset1.set(2); // assign values to bitset2 bitset2.set(2); bitset2.set(4); bitset2.set(6); // print the sets System.out.println("Bitset1:" + bitset1); System.out.println("Bitset2:" + bitset2); // clear from index 2 to index 4 in bitset1 bitset1.clear(1, 4); // clear index 2 to index 8 in bitset2 bitset2.clear(2, 8); // print new bitsets System.out.println(bitset1); System.out.println(bitset2); }
From source file:org.apache.kylin.cube.cuboid.algorithm.generic.BitsOnePointCrossover.java
/** * Helper for {@link #crossover(Chromosome, Chromosome)}. Performs the actual crossover. * * @param first the first chromosome.//from w ww. j a v a 2 s .co m * @param second the second chromosome. * @return the pair of new chromosomes that resulted from the crossover. * @throws DimensionMismatchException if the length of the two chromosomes is different */ private ChromosomePair crossover(final BitsChromosome first, final BitsChromosome second) throws DimensionMismatchException { final int length = first.getLength(); if (length != second.getLength()) { throw new DimensionMismatchException(second.getLength(), length); } final BitSet parent1Key = first.getRepresentation(); final BitSet parent2Key = second.getRepresentation(); final BitSet child1Key = new BitSet(length); final BitSet child2Key = new BitSet(length); // select a crossover point at random (0 and length makes no sense) final int crossoverIndex = 1 + (GeneticAlgorithm.getRandomGenerator().nextInt(length - 2)); BitSet a = (BitSet) parent1Key.clone(); a.clear(crossoverIndex, length); BitSet b = (BitSet) parent2Key.clone(); b.clear(0, crossoverIndex); BitSet c = (BitSet) parent1Key.clone(); c.clear(crossoverIndex, length); BitSet d = (BitSet) parent2Key.clone(); d.clear(0, crossoverIndex); child1Key.or(a); child1Key.or(d); child2Key.or(c); child2Key.or(b); return new ChromosomePair(first.newBitsChromosome(child1Key), second.newBitsChromosome(child2Key)); }