點陣圖的簡單操作
阿新 • • 發佈:2021-07-20
class BitMap { private byte[] words;//用一個位元組陣列來儲存 private int capacity;//點陣圖的長度 public BitMap(int capacity) { this.capacity = capacity; words = new byte[((capacity - 1) >> 3) + 1]; } /** * @Title: setBit * @Description: *@param num */ public void setBit(int num) { if (num < 0 || num > capacity) { return; } int index = num >> 3; int position = num & 0x7; words[index] |= (1 << position); } /*** * @Title: contains * @Description: 判斷某個數是否存在 * @param num * @return */ public boolean contains(int num) { if (num < 0 || num > capacity) { return false; } int index = num >> 3;int position = num & 0x7; return (words[index] & (1 << position)) != 0; } /** * * @Title: clear * @Description: 清除某個值 * @param num */ public void clear(int num) { if (num < 0 || num > capacity) { return; } int index = num >> 3; int position = num & 0x7; words[index] &= ~(1 << position); } }