Как получить sub массив массива в Java, не копируя данные?

В вашем первом примере говорится, что вы определили getPerson (name: String) как метод экземпляра. (Предположительно, потому что он работает со свойствами экземпляра.)

Вы называете это здесь, как если бы оно было определено как:

static func getPerson(name: String) { ...

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

Если я понимаю, что вы хотите сделать, я думаю, что это выглядит примерно так:

class GetPersons {

    struct Person {

        public var name : String = ""
        public var age : Int = 0

    }

    func getPerson(name : String) -> Person {
         var person = Person()
         return person
    }
}

Затем в вашем контроллере представления определите свойство для экземпляра GetPersons:

let gp = GetPersons()

затем в viewDidLoad:

let person = gp.getPerson(name: "Jack")

Кроме того, находится ли GetPersons в реальной структуре или это просто класс, определенный (как и должно быть) в отдельном файле?

48
задан Roman Nikitchenko 18 February 2015 в 00:45
поделиться

5 ответов

Многие классы в Java принимают подмножество массивов в качестве параметра. Например. Writer.write (char cbuf [], int off, int len). Возможно, этого уже достаточно для вашего варианта использования.

22
ответ дан 26 November 2019 в 18:41
поделиться

Библиотеки Guava Google поддерживают понятие части в форме ByteSource.

Google Guava является легко доступным пакетом с открытым исходным кодом функциональности, записанной с нуля для применения лучших методов Google, которые зависят от значительных возможностей разрезания массива.

0
ответ дан 26 November 2019 в 18:41
поделиться
Arrays.asList(array).subList(x, y).

Этот метод дает вам не массив, а Список , который гораздо более гибкий.

63
ответ дан 26 November 2019 в 18:41
поделиться

Посмотрите методы Arrays.copyOfRange (***) .

-1
ответ дан 26 November 2019 в 18:41
поделиться

Вы можете использовать тот же подход, что и класс String ; создать класс для неизменяемых объектов, которые построены из массива, начального смещения и конечного смещения, который предлагает доступ к подмассиву. Пользователь такого объекта не должен знать различия между целым массивом или подмассивом. Конструктору не нужно копировать массив, просто сохраните ссылку на массив и его границы.

2
ответ дан 26 November 2019 в 18:41
поделиться
Другие вопросы по тегам:

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