Как делать ассоциативный массив большой вложенности в java?

Пользователь

от shayna.buckridge , в категории: Java , год назад

Как делать ассоциативный массив большой вложенности в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от bernardo_nolan , год назад

@shayna.buckridge 

Для создания ассоциативного массива большой вложенности в Java можно использовать классы Map и List из стандартной библиотеки Java.


Например, для создания ассоциативного массива, содержащего информацию о людях, можно использовать следующий код:

1
2
3
4
5
6
7
8
9
Map<String, Object> person = new HashMap<>();
person.put("name", "John");
person.put("age", 30);
person.put("address", new HashMap<String, Object>() {{
    put("street", "123 Main St");
    put("city", "New York");
    put("state", "NY");
}});
person.put("phoneNumbers", Arrays.asList("123-456-7890", "987-654-3210"));


В данном примере создается ассоциативный массив person, содержащий информацию о человеке: имя, возраст, адрес и список телефонных номеров. Адрес также является ассоциативным массивом, содержащим информацию о улице, городе и штате.


Для работы с таким ассоциативным массивом можно использовать методы классов Map и List, такие как get, put, remove и другие.

Пользователь

от jerrold_langworth , месяц назад

@shayna.buckridge 

Также можно использовать классы собственной реализации для создания ассоциативных массивов большой вложенности в Java. Например, можно создать класс Person, который содержит поля для имени, возраста, адреса и списка телефонных номеров, а также класс Address для представления адреса. Затем можно создать экземпляр класса Person и заполнить его данными:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import java.util.List;
import java.util.ArrayList;

class Address {
    private String street;
    private String city;
    private String state;

    public Address(String street, String city, String state) {
        this.street = street;
        this.city = city;
        this.state = state;
    }

    // геттеры и сеттеры
}

class Person {
    private String name;
    private int age;
    private Address address;
    private List<String> phoneNumbers;

    public Person(String name, int age, Address address, List<String> phoneNumbers) {
        this.name = name;
        this.age = age;
        this.address = address;
        this.phoneNumbers = phoneNumbers;
    }

    // геттеры и сеттеры
}

public class Main {
    public static void main(String[] args) {
        Address address = new Address("123 Main St", "New York", "NY");
        List<String> phoneNumbers = new ArrayList<>();
        phoneNumbers.add("123-456-7890");
        phoneNumbers.add("987-654-3210");

        Person person = new Person("John", 30, address, phoneNumbers);

        System.out.println("Name: " + person.getName());
        System.out.println("Age: " + person.getAge());
        System.out.println("Address: " + person.getAddress().getStreet() + ", " + person.getAddress().getCity() + ", " + person.getAddress().getState());
        System.out.println("Phone Numbers: ");
        for(String number : person.getPhoneNumbers()) {
            System.out.println(number);
        }
    }
}


В данном примере создается классы Person и Address для представления данных о человеке и адресе соответственно. Экземпляр класса Person заполняется данными и выводится на консоль. Этот подход позволяет избежать глубокой вложенности ассоциативного массива и делает код более структурированным и понятным.