25 package com.sun.glass.ui.monocle.util;
26
27 import java.util.Arrays;
28
29 /**
30 * Mutable sorted set of int values, optimized for a small number of values. Not
31 * thread-safe.
32 */
33 public class IntSet {
34 private int[] elements = new int[4];
35 private int size = 0;
36
37 public void addInt(int value) {
38 int i = getIndex(value);
39 if (i < 0) {
40 int insertionPoint = -1 - i;
41 if (size == elements.length) {
42 elements = Arrays.copyOf(elements, size * 2);
43 }
44 if (insertionPoint != size) {
45 } else {
46 System.arraycopy(elements, insertionPoint,
47 elements, insertionPoint + 1,
48 size - insertionPoint);
49 }
50 elements[insertionPoint] = value;
51 size ++;
52 }
53 }
54
55 public void removeInt(int value) {
56 int i = getIndex(value);
57 if (i >= 0) {
58 if (i < size - 1) {
59 System.arraycopy(elements, i + 1, elements, i, size - i - 1);
60 }
61 size --;
62 }
63 }
64
65 public boolean containsInt(int value) {
107 while (i < size) {
108 dest.addInt(elements[i]);
109 i ++;
110 }
111 }
112
113 public void clear() {
114 size = 0;
115 }
116
117 public int size() {
118 return size;
119 }
120
121 public boolean isEmpty() {
122 return size == 0;
123 }
124
125 /** Copies the contents of this set to the target set. */
126 public void copyTo(IntSet target) {
127 if (target.elements.length > size) {
128 target.elements = Arrays.copyOf(elements, elements.length);
129 } else {
130 System.arraycopy(elements, 0, target.elements, 0, size);
131 }
132 target.size = size;
133 }
134
135 public boolean equals(IntSet set) {
136 if (set.size == size) {
137 for (int i = 0; i < size; i++) {
138 if (set.elements[i] != elements[i]) {
139 return false;
140 }
141 }
142 return true;
143 } else {
144 return false;
145 }
146 }
147
|
25 package com.sun.glass.ui.monocle.util;
26
27 import java.util.Arrays;
28
29 /**
30 * Mutable sorted set of int values, optimized for a small number of values. Not
31 * thread-safe.
32 */
33 public class IntSet {
34 private int[] elements = new int[4];
35 private int size = 0;
36
37 public void addInt(int value) {
38 int i = getIndex(value);
39 if (i < 0) {
40 int insertionPoint = -1 - i;
41 if (size == elements.length) {
42 elements = Arrays.copyOf(elements, size * 2);
43 }
44 if (insertionPoint != size) {
45 System.arraycopy(elements, insertionPoint,
46 elements, insertionPoint + 1,
47 size - insertionPoint);
48 }
49 elements[insertionPoint] = value;
50 size ++;
51 }
52 }
53
54 public void removeInt(int value) {
55 int i = getIndex(value);
56 if (i >= 0) {
57 if (i < size - 1) {
58 System.arraycopy(elements, i + 1, elements, i, size - i - 1);
59 }
60 size --;
61 }
62 }
63
64 public boolean containsInt(int value) {
106 while (i < size) {
107 dest.addInt(elements[i]);
108 i ++;
109 }
110 }
111
112 public void clear() {
113 size = 0;
114 }
115
116 public int size() {
117 return size;
118 }
119
120 public boolean isEmpty() {
121 return size == 0;
122 }
123
124 /** Copies the contents of this set to the target set. */
125 public void copyTo(IntSet target) {
126 if (target.elements.length < size) {
127 target.elements = Arrays.copyOf(elements, elements.length);
128 } else {
129 System.arraycopy(elements, 0, target.elements, 0, size);
130 }
131 target.size = size;
132 }
133
134 public boolean equals(IntSet set) {
135 if (set.size == size) {
136 for (int i = 0; i < size; i++) {
137 if (set.elements[i] != elements[i]) {
138 return false;
139 }
140 }
141 return true;
142 } else {
143 return false;
144 }
145 }
146
|