Удалите определенное значение из массива вместо удаления, используя путь индекса

Вы можете запускать из Java-кода.

try {

        File file = new File(keystore location);
        is = new FileInputStream(file);
        KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
        String password = "password";
        keystore.load(is, password.toCharArray());


        Enumeration enumeration = keystore.aliases();
        while(enumeration.hasMoreElements()) {
            String alias = (String)enumeration.nextElement();
            System.out.println("alias name: " + alias);
            Certificate certificate = keystore.getCertificate(alias);
            System.out.println(certificate.toString());

        }

    } catch (java.security.cert.CertificateException e) {
        e.printStackTrace();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (KeyStoreException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }finally {
        if(null != is)
            try {
                is.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    }

Класс сертификата содержит всю информацию о хранилище ключей.

UPDATE-OBTAIN PRIVATE KEY

Key key = keyStore.getKey(alias, password.toCharArray());
String encodedKey = new Base64Encoder().encode(key.getEncoded());
System.out.println("key ? " + encodedKey);

@prateek Надеюсь, это то, что вы ищете!

0
задан iOS Team 11 March 2019 в 14:51
поделиться

3 ответа

removeAll - это команда для условного удаления.

var array = [25,45,69,78,63]
array.removeAll{[110] == 78}
print(array)

//[25, 45, 69, 63]
0
ответ дан E.Coms 11 March 2019 в 14:51
поделиться

Вы можете использовать фильтр для удаления значений из массива:

let newArray = [25, 45, 69, 78, 63].filter { [110] != 78 }
0
ответ дан Adis 11 March 2019 в 14:51
поделиться

У вас есть несколько вариантов здесь, в зависимости от того, что лучше всего подходит для вашего конкретного варианта использования!

Удаление с помощью фильтрации

Функция фильтра передает каждый элемент массива в блок кода. Вы предоставляете и удаляете все предметы, за которые возвращаете false. Это полезно для выполнения простого фильтра, но если вам также нужен индекс удаленного элемента (например, для перезагрузки пути индекса табличного представления), он не очень полезен.

songIDArray = songIDArray.filter({ id in
    return id != 78
})

Удалить по индексу

Сначала получите индекс для удаления, вы можете сделать это различными способами в зависимости от типа элементов, которые есть в вашем массиве. Если они соответствуют Equatable (целые числа соответствуют), вы можете использовать

if let removalIndex = songIDArray.firstIndex(of: 78) {
    songIDArray.remove(at: removalIndex)
}

Если у вас нет массива Equatable элементов, тогда вы можете вместо этого использовать index(where:), который возвращает первый индекс для которого вы возвращаете true из предоставленного замыкания:

if let removalIndex = songIDArray.index(where: { id in
    return id == 78
}) {
    songIDArray.remove(at: removalIndex)
}

Этот метод полезен, если вам также нужно сделать что-то еще с индексом, например, перезагрузить UITableViewCell по определенному пути индекса, чтобы отразить ваше изменение и т.д.

Удалить все

В Swift 4.2 также есть функция removeAll(where:), которая работает аналогично filter, но не возвращает новый массив:

songIDArray.removeAll(where: { id in
    return id == 78
})
0
ответ дан simonthumper 11 March 2019 в 14:51
поделиться
Другие вопросы по тегам:

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