Вязовик Н.А.
Шрифт:
public Test {
}
public static void main(String[] args) {
Test test = new Test;
String[] arr = {"String 1","String 4",
"String 2","String 3"
};
test.dumpArray(arr);
Arrays.sort(arr);
test.dumpArray(arr);
int ind = Arrays.binarySearch(arr, "String 4");
System.out.println(
"\nIndex of \"String 4\" = " + ind);
}
void dumpArray(String arr[]) {
System.out.println;
for(int cnt=0;cnt < arr.length;cnt++) {
System.out.println(arr[cnt]);
}
}
}
Класс StringTokenizer
Этот класс предназначен для разбора строки по лексемам ( tokens ). Строка, которую необходимо разобрать, передается в качестве параметра конструктору StringTokenizer(String str). Определено еще два перегруженных конструктора, которым дополнительно можно передать строку-разделитель лексем StringTokenizer(String str, String delim) и признак возврата разделителя лексем StringTokenizer(String str, String delim, Boolean returnDelims).
Разделителем лексем по умолчанию служит пробел.
public class Test {
public Test {
}
public static void main(String[] args) {
Test test = new Test;
String toParse =
"word1;word2;word3;word4";
StringTokenizer st =
new StringTokenizer(toParse,";");
while(st.hasMoreTokens) {
System.out.println(st.nextToken);
}
}
}
Результатом будет:
word1
word2
word3
word4
Класс BitSet
Класс BitSet предназначен для работы с последовательностями битов. Каждый компонент этой коллекции может принимать булево значение, которое обозначает, установлен бит или нет. Содержимое BitSet может быть модифицировано содержимым другого BitSet с использованием операций AND, OR или XOR (исключающее или).
BitSet имеет текущий размер (количество установленных битов), может динамически изменяться. По умолчанию все биты в наборе устанавливаются в 0 (false). Установка и очистка битов в BitSet осуществляется методами set(int index) и clear(int index).
Метод int length возвращает "логический" размер набора битов, int size возвращает количество памяти, занимаемой битовой последовательностью BitSet.
public class Test {
public Test {
}
public static void main(String[] args) {
Test test = new Test;
BitSet bs1 = new BitSet;
BitSet bs2 = new BitSet;
bs1.set(0);
bs1.set(2);
bs1.set(4);
System.out.println("Length = " + bs1.length+" size = "+bs1.size);
System.out.println(bs1);
bs2.set(1);
bs2.set(2);
bs1.and(bs2);
System.out.println(bs1);
}
}
Результатом будет:
Length = 5 size = 64
{0, 2, 4}
{2}
Проанализировав первую строку вывода на консоль, можно сделать вывод, что для внутреннего представления BitSet использует значения типа long.
Класс Random
Класс Random используется для получения последовательности псевдослучайных чисел. В качестве "зерна" применяется 48-битовое число. Если для инициализации Random задействовать одно и то же число, будет получена та же самая последовательность псевдослучайных чисел.
В классе Random определено также несколько методов, которые возвращают псевдослучайные величины для примитивных типов Java.
Дополнительно следует отметить наличие двух методов: double nextGaussian - возвращает случайное число в диапазоне от 0.0 до 1.0 распределенное по нормальному закону, и void nextBytes(byte[] arr) - заполняет массив arr случайными величинами типа byte.
Пример использования Random:
public class Test {
public Test {
}
public static void main(String[] args) {
Test test = new Test;
Random r = new Random(100);
// Generating the same sequence numbers
for(int cnt=0;cnt<9;cnt++) {
System.out.print(r.nextInt + " ");
}
System.out.println;
r = new Random(100);
for(int cnt=0;cnt<9;cnt++) {
System.out.print(r.nextInt + " ");
}
System.out.println;
// Generating sequence of bytes
byte[] randArray = new byte[8];