Java: массивы и векторы

Вы должны использовать Date, DateComponents и Calendar вместо NSDate, NSDateComponents и NSCalendar. Затем старый синтаксис необходимо обновить до последней версии Swift. Также вам нужно изменить константу (let) interval и anchorComponents на переменную (var) при изменении значений. Ниже приведен фиксированный фрагмент,

let calendar = Calendar.current
var interval = DateComponents()
interval.day = 7

// Set the anchor date to Monday at 3:00 a.m.
var anchorComponents = calendar.dateComponents([.day, .month, .year, .weekday], from: Date())


let offset = (7 + (anchorComponents.weekday ?? 0) - 2) % 7
anchorComponents.day = (anchorComponents.day ?? 0) - offset
anchorComponents.hour = 3
7
задан Dave L. 27 September 2008 в 21:20
поделиться

4 ответа

Можно использовать Карту и Список (это интерфейсы, реализованные больше чем одним способом к Вам выбрать самое соответствующее в Вашем случае).

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

Пример:

import java.util.*;

public class Foo {
    public static void main(String[] args) {
        Map<String, List<String>> m = new HashMap<String, List<String>>();
        List<String> l = new LinkedList<String>();
        l.add("col_value_1");
        l.add("col_value_2");
        //and so on
        m.put("col_name_1",l); //repeat for the rest of the colnames

       //then, to get it you do

       List<String> rl = m.get("col_name_1");

    }
}
12
ответ дан 6 December 2019 в 05:39
поделиться

Попытайтесь использовать a Map<String, List<String>>. Это позволит Вам использовать Строки в качестве ключей / индексы во внешнюю карту и получать результат, являющийся списком Строк как значения. Вы, вероятно, захотите использовать a HashMap для внешней карты и ArrayListдля внутренних списков.

Если Вы хотите некоторый чистый код, который подобен PHP, который Вы дали для инициализации его, можно сделать что-то вроде этого:

Map<String, List<String>> columns = new HashMap<String, List<String>>() {{
    put("col_name_1", Arrays.asList("col_val_1", "col_val_2", "col_val_n"));
    put("col_name_2", Arrays.asList("col_val_1", "col_val_2", "col_val_n"));
    put("col_name_n", Arrays.asList("col_val_1", "col_val_2", "col_val_n"));
}};
15
ответ дан 6 December 2019 в 05:39
поделиться

Вы хотите Карту, которые включаются примерно чем-либо. HashMaps работают в большинстве случаев.

Что-то вроде этого.

List<String> col1Vals = new java.util.ArrayList<String>();
col1Vals.add("col_value_1");
col1Vals.add("col_value_2");
Map<String, List<String>> map = new HashMap<String, List<String>>();
map.put("col_name_1", col1Vals);

Если Вы хотите что-то более простое, библиотека Ленга свободного городского населения имеет MultiMap.

5
ответ дан 6 December 2019 в 05:39
поделиться

Будьте предупреждены, что Вектор является унаследованным кодом для платформы Наборов. Это синхронизирует доступ к своим элементам, который замедляет производительность. Для большинства вариантов использования для использования Списка не нужен этот вид потокобезопасности, и даже если бы Вы сделали, то я был бы более склонен использовать CopyOnWriteArrayList.

2
ответ дан 6 December 2019 в 05:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: