Добавил:
Rumpelstilzchen2018@yandex.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3-й семестр / Лекции / 4 - Презентация - Полиморфизм

.pdf
Скачиваний:
68
Добавлен:
25.12.2020
Размер:
19.24 Mб
Скачать

Центрдистанционногообучения

Бинарный поиск

//Двоичный поиск

 

 

public static Comparable binarySearch (Comparable[]

 

list,Comparable target) {

 

 

int min=0, max=list.length-1, mid=0;

 

boolean found = false;

 

 

while (!found && min <= max) {

 

mid = (min+max) / 2;

 

 

if (list[mid].compareTo(target)==0)

 

found = true;

 

 

else

 

 

if (target.compareTo(list[mid]) < 0)

 

max = mid-1;

 

 

else

 

 

min = mid+1;

}

 

if (found) return list[mid];

 

else return null;}}

9-31

online.mirea.ru

 

Бинарный поиск

Центрдистанционногообучения

 

public class PhoneList2 {

public static void main (String[] args) { Contact test, found;

Contact[] friends = new Contact[8];

friends[0] = new Contact ("John", "Smith", "610-555-7384"); friends[1] = new Contact ("Sarah", "Barnes", "215-555-3827"); friends[2] = new Contact ("Mark", "Riley", "733-555-2969"); friends[3] = new Contact ("Laura", "Getz", "663-555-3984"); friends[4] = new Contact ("Larry", "Smith", "464-555-3489"); friends[5] = new Contact ("Frank", "Phelps", "322-555-2284"); friends[6] = new Contact ("Mario", "Guzman", "804-555-9066"); friends[7] = new Contact ("Marsha", "Grant", "243-555-2837"); test = new Contact ("Frank", "Phelps", "");

found = (Contact) Searching.linearSearch(friends, test);

9-32

online.mirea.ru

Бинарый поиск

Центрдистанционногообучения

 

if (found != null)

System.out.println ("Found: " + found); else

System.out.println ("The contact was not found."); System.out.println ();

Sorting.selectionSort(friends);

test = new Contact ("Mario", "Guzman", "");

found = (Contact) Searching.binarySearch(friends, test); if (found != null)

System.out.println ("Found: " + found); else

System.out.println ("The contact was not found.");

} } 9-33

online.mirea.ru

Центрдистанционногообучения

Строки в Java.

Класс String

StringBuffer

StringBuilder

online.mirea.ru

Центрдистанционногообучения

Особенности использования строк в Java

Java предоставляет специальный механизм для хранения последовательностей символьных литералов (строк), так называемый общий пул строк.

Если две последовательности литералов (строки) имеют одинаковое

содержание, то они разделяют общее пространство для хранения внутри общего пула.

Такой подход принят для того чтобы сохранить место для хранения часто используемых строк.

С другой стороны, объекты типа String (строки), созданные с помощью оператора new и конструктора хранятся в куче.

online.mirea.ru

Центрдистанционногообучения

Коротко о классе String

В Java строки представляют собой неизменяемую последовательность символов Unicode.

В отличие от представления в C / C ++ , где строка является просто массивом типа char, любая Java, строка является объектом класса java.lang.String

Однако Java строка , представляет собой в отличие от других используемых классов особый класс, который обладает довольно специфичными характеристиками

Строка является неизменяемой, то есть, символьной константой. Это значит, что ее содержание не может быть изменено после ее (строки как объекта) создания. Например, метод toUpperCase () – преобразования к верхнему регистру создает и возвращает новую строку вместо изменения

содержания существующей строки.

online.mirea.ru

Центрдистанционногообучения

Коротко о классе String

Java cтрока представляет из себя строку литералов (текст), помещенных в двойные кавычки, например: "Hello , World! ”

Вы можете присвоить последовательность строковых литералов непосредственно переменной типа String, вместо того чтобы вызывать конструктор для создания экземпляра класса String

Оператор '+' является перегруженным, для объектов типа String, и всегда используется, чтобы объединить две строки операндов. В данном контексте мы говорим об операции конкатенации или сложения строк (хотя '+' не работает как оператор сложения для любых других объектов, кроме строк, например, таких как Point и Circle).

online.mirea.ru

Центрдистанционногообучения

Особенности использования строк в Java

есть два способа создания строк:

1.неявное создание путем присвоения строкового литерала переменной

2.явное создание объекта String, через вызов оператора new и вызов конструктора.

String s1 = "Hello";

// строка литералов

String s2

= "Hello";

// строка литералов

String s3

= s1;

// одинаковые ссылки

String s4

= new String("Hello");

// String объект

String s5

= new String("Hello");

// String объект

online.mirea.ru

Центрдистанционногообучения

Особенности использования строк в Java

Строковые литералы хранятся в общем пуле.

Это облегчает совместное использование памяти для строк с тем же содержанием в целях

сохранения памяти.

Объекты строк , выделенные с помощью оператора new хранятся в куче (heap), а там нет разделяемого хранилища для одинакового контента (содержания).

online.mirea.ru

Центрдистанционногообучения

Кратко о классе String

строки String являются неизменяемыми, поэтому строковые литералы с таким контентом хранятся в пуле строк. Изменение содержимого одной строки непосредственно может вызвать нежелательные побочные эффекты и может повлиять на другие строки, использующие ту же память.

Обратитесь к API JDK для того чтобы ознакомиться с полным списком возможностей класса String в java.lang.String.

online.mirea.ru

Соседние файлы в папке Лекции