JavaRush /Java блог /Random /Кофе-брейк #152. Стандарты кодирования в Java. HashMap в ...

Кофе-брейк #152. Стандарты кодирования в Java. HashMap в Java — особенности использования и методы взаимодействия

Статья из группы Random

Стандарты кодирования в Java

Источник: Medium В этой статье вы узнаете, как правильно придерживаться стандартов кодирования в Java. Кофе-брейк #152. Стандарты кодирования в Java. HashMap в Java — особенности использования и методы взаимодействия - 1Java является одним из наиболее широко используемых языков и платформ программирования. Поэтому весьма вероятно, что ваш код будет читаться несколькими людьми. Из этого следует, что код должен быть удобочитаемым и понятным всеми — от новичков до senior-разработчиков. Наша цель — писать код таким образом, чтобы читатель кода полностью его понимал. Это требует знания и соблюдения стандартов кодирования.

Зачем нужны руководства по написанию кода?

Рекомендации по кодированию важны, потому что значительная часть стоимости программного обеспечения тратится на обслуживание кода. Кроме того, программное обеспечение не всегда разрабатывается одним разработчиком. Следовательно, соблюдение соглашения о написании программного обеспечения повышает удобочитаемость программы. 1. Соглашения об именах: мы обычно следуем соглашению о CamelCase (верблюжьем регистре) в программировании на Java.
  • Имена методов должны начинаться с маленькой буквы.
  • Имена методов обычно являются глаголами.
  • Если метод содержит несколько слов, каждое внутреннее слово должно начинаться с заглавной буквы. Пример: toString().
  • Имя метода должно быть комбинацией глагола и существительного Пример: getCarName(), getCarNumber().
  • Фигурные скобки: Они используются для определения тел классов, методов и циклов. Существует два стандартных формата использования фигурных скобок.
  • Пустые строки не должны находиться ни после открывающей скобки, ни перед закрывающей скобкой.
    
    class MountBlue{
       ... MountBlue(){
        // Конструктор
           ...
       }
    
       int Mountainain(int a, float b){
       
           ... for (int i = 0; i < Field; i++){
               ....
           }
       }
    }
    
  • Фигурная скобка ставится в конце строки, с которой начинается класс, метод, цикл и так далее. Закрывающая скобка находится на отдельной строке.
    Каждая фигурная скобка добавляется на новую строку, и пара выравнивается по вертикали.
2. Отступ: единицей отступа должно быть 4 пробела и 8 табуляций.
  • Применяйте отступ к одинаковым элементам в вертикальном списке (например, к комментариям в конце строки и идентификаторам в объявлениях).
  • Окружите бинарные операторы (включая присваивание) пробелами.
  • После точки с запятой или запятой следует пробел.
  • Добавьте пробел между ключевым словом (“if”, “while”, “return”, “catch”, “switch”, “for”) и последующей скобкой.
  • Вставьте пустые строки, чтобы различать важные части кода.
3. Пробелы. Пробелы также играют важную роль в удобочитаемости:
  • Операторы должны быть окружены пробелом.
    
    Операторы следует писать так: 
    a = (b + c) * d;
    А не так: 
    a=(b+c)*d
    
  • За зарезервированными словами Java должен следовать пробел. Например:
    
    Цикл нужно объявлять так: 
    while (true) {...} 
    А не так: 
    while(true){...}
    
  • За запятыми должен следовать пробел. Например:
    
    Функцию нужно объявлять так: 
    fun(a, b, c, d); 
    А не так: 
    fun(a, b, c, d);
    
  • Двоеточия должны быть окружены пробелом. Например:
    
    case нужно объявлять так: 
    case 100 : break; 
    А не так: 
    case 100:break;
    
  • За точками с запятой в операторах for должен следовать символ пробела. Например:
    
    Цикл for нужно объявлять так: 
    for (i = 0; i < n; i++) 
    А не так: 
    for(i=0;i<n;i++)
    
5. Комментарии: Java-программы могут иметь два типа комментариев.
  • Комментарии к реализации ограничены символом //. Для комментариев реализации Java также позволяет использовать /*…*/.
  • Блочные комментарии используются для описания файлов, методов, структур данных и алгоритмов.
  • Однострочные комментарии могут располагаться на одной строке с отступом до уровня последующего кода. Если комментарий не может быть написан в одну строку, он должен соответствовать формату блочного комментария.
  • Конечные (очень короткие) комментарии могут появляться в той же строке кода, который они описывают, но должны быть отделены от кода на значительном расстоянии.
  • Комментарии к документации описывают классы, интерфейсы, конструкторы, методы и поля Java. Они разделены /**…*/. Обратите внимание на двойную звездочку ** в начале с одним комментарием для класса, интерфейса или члена. Этот комментарий должен стоять непосредственно перед объявлением без пробела между комментарием и кодом, на который он ссылается. Комментарии к документации можно извлечь в файлы HTML с помощью инструмента javadoc.

/** Это комментарий к Java документации */
private int comments_;

HashMap в Java — особенности использования и методы взаимодействия

Источник: FreeCodeCamp Сегодня вы узнаете об особенностях работы с HashMap, о методах взаимодействия с хранящимися в них данными и ряд других полезных рекомендаций. Кофе-брейк #152. Стандарты кодирования в Java. HashMap в Java — особенности использования и методы взаимодействия - 2

Каковы особенности HashMap в Java?

Прежде чем работать с HashMap, важно понять некоторые особенности:
  • Элементы хранятся в парах ключ/значение (key/value).
  • Элементы не сохраняют порядок при добавлении. Данные остаются не упорядочены.
  • В случае наличия повторяющихся ключей последний из них имеет приоритет над другим(и).
  • Типы данных указываются с использованием классов-оболочек вместо примитивных типов данных.

Как создать HashMap в Java

Чтобы создать и использовать HashMap, вы должны сначала импортировать пакет java.util.HashMap:

import java.util.HashMap;
Синтаксис при создании нового HashMap:

HashMap<KeyDataType, ValueDataType> HashMapName = new HashMap<>();
А теперь давайте разберем некоторые из терминов в приведенном выше синтаксисе.
  • KeyDataType обозначает тип данных всех ключей, которые будут храниться в файле HashMap.
  • ValueDataType обозначает тип данных всех значений, которые будут храниться в файле HashMap.
  • HashMapName обозначает название HashMap.
Вот пример для более простого понимания терминов:

HashMap<Integer, String> StudentInfo = new HashMap<>();
В этом коде мы создали HashMap под названием StudentInfo. Все ключи, хранящиеся в HashMap, будут целыми числами (Integer), а значения будут строками (String). Учтите, что при указании типов данных для ключей и значений в HashMap мы работаем с классами-оболочками (wrapper classes), а не с примитивными типами. Прежде чем мы углубимся в примеры, вот список классов-оболочек и соответствующих им примитивных типов данных в Java:

Классы-оболочки и примитивные типы в Java

WRAPPER CLASSES PRIMITIVE DATA TYPES
Integer int
Character char
Float float
Byte byte
Short short
Long long
Double double
Boolean boolean
При работе с HashMap мы используем только классы-оболочки.

Методы HashMap в Java

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

Как добавить элементы HashMap в Java

Чтобы добавить элементы в HashMap, мы используем метод put(). Он принимает два параметра — ключ и значение добавляемого элемента. Вот пример:

import java.util.HashMap;
class HashMapExample {
    public static void main(String[] args) {
        
        HashMap<Integer, String> StudentInfo = new HashMap<>();

        StudentInfo.put(1, "Ihechikara");
        StudentInfo.put(2, "Jane");
        StudentInfo.put(3, "John");
        
        System.out.println(StudentInfo);
        // {1=Ihechikara, 2=Jane, 3=John}
    }
}
В этом отрывке кода HashMap назван StudentInfo. Мы указали ключи как целые числа, а значения указаны строками: HashMap<Integer, String>. Чтобы добавить элементы в HashMap, мы использовали метод put():

StudentInfo.put(1, "Ihechikara");
StudentInfo.put(2, "Jane");
StudentInfo.put(3, "John");
Мы добавили три элемента, каждый из которых имеет целое число в качестве ключа и строку в качестве значения.

Как получить доступ к элементам в HashMap

Вы можете использовать метод get() для доступа к элементам, хранящимся в файле HashMap. Он принимает один параметр — ключ элемента, к которому осуществляется доступ. Вот пример:

import java.util.HashMap;
class HashMapExample {
    public static void main(String[] args) {
        HashMap<Integer, String> StudentInfo = new HashMap<>();

        StudentInfo.put(1, "Ihechikara");
        StudentInfo.put(2, "Jane");
        StudentInfo.put(3, "John");
        
        System.out.println(StudentInfo.get(2));
        // Jane
    }
}
В приведенном выше примере StudentInfo.get(2) возвращает значение с ключом 2. При выводе на консоле печатается "Jane".

Как изменить значение элементов в HashMap в Java

Чтобы изменить значение элементов в HashMap, мы используем метод replace(). Он принимает два параметра — ключ изменяемого элемента и новое значение, которое ему присваивается.

import java.util.HashMap;
class HashMapExample {
    public static void main(String[] args) {
        HashMap<Integer, String> StudentInfo = new HashMap<>();

        StudentInfo.put(1, "Ihechikara");
        StudentInfo.put(2, "Jane");
        StudentInfo.put(3, "John");
        
        // UИзменить ключ 1
        StudentInfo.replace(1, "Doe");
        
        System.out.println(StudentInfo);
        // {1=Doe, 2=Jane, 3=John}
    }
}
Когда указанному выше HashMap назначались элементы, элемент с ключом 1 имел значение “Ihechikara”. Мы изменили его значение на “Doe” с помощью метода replace(): StudentInfo.replace(1, "Doe");.

Как удалить элементы в HashMap Java

Для удаления элемента из файла HashMap можно использовать метод remove(). Он принимает один параметр — ключ удаляемого элемента.

import java.util.HashMap;
class HashMapExample {
    public static void main(String[] args) {
        HashMap<Integer, String> StudentInfo = new HashMap<>();

        StudentInfo.put(1, "Ihechikara");
        StudentInfo.put(2, "Jane");
        StudentInfo.put(3, "John");
        
        // Удалить ключ 1
        StudentInfo.remove(1);
        
        System.out.println(StudentInfo);
        // {2=Jane, 3=John}
    }
}
Здесь мы, используя метод remove(), удалили элемент с ключом 1. Если же вы хотите удалить все элементы HashMap сразу, тогда используйте метод clear():

import java.util.HashMap;
class HashMapExample {
    public static void main(String[] args) {
        HashMap<Integer, String> StudentInfo = new HashMap<>();

        StudentInfo.put(1, "Ihechikara");
        StudentInfo.put(2, "Jane");
        StudentInfo.put(3, "John");
        
        // Удалить все элементы
        StudentInfo.clear();
        
        System.out.println(StudentInfo);
        // {}
    }
}
Вот еще несколько полезных методов, которые вы можете использовать при работе с HashMap:
  • containsKey возвращает true, если указанный ключ существует в файле HashMap.
  • containsValue возвращает true, если указанное значение существует в HashMap.
  • size() возвращает количество элементов в HashMap.
  • isEmpty() возвращает true, если в HashMap нет элементов.

Заключение

В этой статье мы говорили о HashMap в Java. Сначала мы разобрали особенности файла HashMap и узнали, как взаимодействовать с элементами и хранящимися данными. Также мы ознакомились с примерами кода и некоторыми методами для работы с HashMap. Удачного кодинга!
Комментарии (2)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
ustmax Уровень 26
26 августа 2022
Функцию нужно объявлять так: fun(a, b, c, d); А не так: fun(a, b, c, d); а в чем разница?
defezis Уровень 35
19 августа 2022
Не лишним будет попробовать реализовать свой HashMap на основе интерфейса Map. Если прошли Java Core, уже реализовывали свои LinkedList, ArrayList - проблем возникнуть не должно. После того, как разберетесь с принципами работы HashMap, хеширования, поможет статья Подробный разбор класса HashMap - Vonorim. Реализацию с КЧ-Деревом можно пропустить, используя связный список.