0
votes

Pourquoi les fonctions d'extension ne fonctionnent pas sur ArrayList >


2 commentaires

J'ai supprimé le point d'interrogation de votre titre, comme ArrayList >? peut être un type de données (pour indiquer qu'il est nullable) et c'est un peu déroutant pour la lecture des personnes :)


Merci, je n'ai pas remarqué cela. :)


3 Réponses :


3
votes
fun padding(tokenizedinput : ArrayList<ArrayList<Double>>) = arrayListOf(tokenizedinput[0])

1 commentaires

À la fin de votre réponse, si je l'ai bien compris, arraylistof crée une autre arrayliste qui obtient la valeur de premier élément ?. Si oui, je ne peux pas modifier le tableau existant temp_storage ?



2
votes

list.take (n) code> ou list.droplast (n) code> serait retourner code> une nouvelle liste avec l'opération. Il serait pas modifier forte> la liste existante. Essayez de vous connecter ou d'impression de cette façon: -

temp_storage = ArrayList(temp_storage.dropLast(1)) // need to cast it to ArrayList<T> before assigning


5 commentaires

Alors, puis-je faire temp_storage = temp_storage.droplaste (1) ? Cela modifiera-t-il la liste existante?


@Rishabhsahrawat oui il devrait


Si je fais cela, je vois l'erreur: L'inférence de type a échoué. Requis: ArrayList >. Trouvé: Liste > , quand je l'ai fait temp_storage = temp_storage.droplaste (1)


@Rishabhsahrawat j'ai édité la réponse s'il vous plaît vérifier!


Ah oui, maintenant je l'obtiens. La liste renvoyée à partir de la fonction doit être enveloppée dans ArrayList . Ça a marché. Merci. Bonne journée!



1
votes

Pour ajouter à ce que les autres réponses ont déjà dit, de la classe actuelle contenant cette méthode:

la méthode forte>: p>

/**
 * Returns a list containing all elements except last [n] elements.
 * 
 * @throws IllegalArgumentException if [n] is negative.
 * 
 * @sample samples.collections.Collections.Transformations.drop
 */
public fun <T> List<T>.dropLast(n: Int): List<T> {
    require(n >= 0) { "Requested element count $n is less than zero." }
    return take((size - n).coerceAtLeast(0))
}


3 commentaires

Je comprends, mais ensuite comment modifier le tableau ?. Devrais-je créer une autre arrayliste et tout enregistrer là ou puis-je modifier l'existant?


Je manquais simplement la partie d'emballage pour la liste résultante. Merci pour votre aide et votre temps.


Pas de problème, désolé pour la réponse différée là-bas, je n'ai pas vu votre commentaire, vous pouvez attribuer le résultat à une autre arraylist, car vous avez probablement compris :)