[Petite histoire] J'ai essayé de rendre java ArrayList un peu plus pratique

0. (Lisez l'article vous-même)

C'est un article ennuyeux, mais il est idéal pour les débutants à étudier car il utilise des paramètres de type dans le code court et utilise super et cela correctement, et il montre également la valeur de l'héritage propre à la programmation orientée objet. C'est un contenu avec lequel vous pouvez faire l'expérience.

1. Défi

Dans ʻArrayList de java, ʻelement peut être stocké comme l'élément ʻindex e en utilisant la méthode set (index int, élément T). Cependant, si vous faites cela lorsque le nombre d'éléments est ʻindex ou moins, java.lang.IndexOutOfBoundsException se produira. C'est sobre et gênant.

2. Solution

J'ai écrit une classe enfant ʻAL ʻ de ʻArrayList `. Décidez à l'avance "quoi remplir lorsque le nombre d'éléments est insuffisant" Lorsque le nombre d'éléments est réellement insuffisant, remplissez-le.

Le code ressemble à ceci:

AL.java


	class AL<T> extends java.util.ArrayList<T>
	{
		private T filler = null;//※

		void fillBy(T filler){this.filler = filler;}

		//Remplissez de remplissage quand il semble être placé dans un endroit qui n'existe pas
		public T set(int index, T element)
		{
			if(filler!=null) while(this.size() <= index) this.add(filler);
			return super.set(index, element);
		}
		//La même chose est vraie pour obtenir
		public T get(int index)
		{
			if(filler!=null) while(this.size() <= index) this.add(filler);
			return super.get(index);
		}
	}

échantillon.

Main.java


class Main
{
    public static void main(String...args)
    {
        AL<String> al = new AL<>();
        al.add("indigenous");
        //al.fillBy("I filled.");
        al.set(3, "immigration");
        for(String s : al)
            System.out.println(s);
    }
}

À ce rythme, une exception se produira et cela ne fonctionnera plus comme avant. Cependant, lorsque la méthode commentée fillby est activée, aucune exception n'est déclenchée et ce qui suit est affiché.

indigenous
I filled.
I filled.
immigration

Recommended Posts

[Petite histoire] J'ai essayé de rendre java ArrayList un peu plus pratique
[Java] J'ai essayé de faire un labyrinthe par la méthode de creusage ♪
J'ai essayé de créer une fonction de connexion avec Java
J'ai créé un client RESAS-API en Java
[Java] J'ai essayé de créer un jeu Janken que les débutants peuvent exécuter sur la console
[Petite histoire Java] Surveiller lorsqu'une valeur est ajoutée à la liste
J'ai essayé de créer une application de conversation en Java à l'aide de l'IA «A3RT»
J'ai essayé de faire une authentification de base avec Java
java j'ai essayé de casser un simple bloc
Je l'ai fait en Java pour toujours rendre (a == 1 && a == 2 && a == 3) vrai
Je voulais que (a == 1 && a == 2 && a == 3) vrai en Java
J'ai essayé de casser le bloc avec java (1)
Une histoire où j'ai essayé de faire une vidéo en liant Traitement et Resolume
J'ai essayé de créer une compétence Clova en Java
J'ai essayé d'implémenter la méthode de division mutuelle d'Eugrid en Java
J'ai créé un programme qui recherche la classe cible à partir du processus surchargé avec Java
Une histoire sur l'exécution d'un programme qui copie des fichiers en Java à partir d'un fichier chauve-souris pour rendre le travail quotidien un peu plus efficace
J'ai essayé de créer un outil de comparaison des prix des produits Amazon dans le monde entier avec Java, l'API Amazon Product Advertising, l'API Currency (29/01/2017)
J'ai essayé de créer un environnement de développement java8 avec Chocolatey
[JDBC] J'ai essayé d'accéder à la base de données SQLite3 depuis Java.
J'ai essayé de résumer les bases de kotlin et java
Je veux faire une liste avec kotlin et java!
Je voulais juste créer une propriété réactive en Java
Je veux créer une fonction avec kotlin et java!
J'ai essayé de faire coexister Java Optional et la clause de garde
J'ai essayé de construire l'environnement petit à petit en utilisant docker
J'ai essayé de convertir une chaîne de caractères en un type LocalDate en Java
J'ai essayé de convertir l'exemple d'application en microservice selon l'idée du livre "Microservice Architecture".
J'ai essayé un petit docker de digdag.
J'ai essayé d'interagir avec Java
J'ai essayé d'expliquer la méthode
J'ai essayé le framework Java "Quarkus"
L'histoire que je voulais développer Zip
J'ai essayé de résumer l'apprentissage Java (1)
J'ai essayé de résumer Java 8 maintenant
Comment créer un tableau Java
Une histoire que j'ai eu du mal à défier le pro de la concurrence avec Java
J'ai essayé d'illuminer le sapin de Noël dans un jeu de la vie
[Unity] J'ai essayé de créer un plug-in natif UniNWPathMonitor en utilisant NWPathMonitor
J'ai essayé de traduire le message d'erreur lors de l'exécution d'Eclipse (Java)
J'ai essayé de créer une application Android avec MVC maintenant (Java)
J'ai essayé de résumer les méthodes de Java String et StringBuilder
J'ai essayé d'exécuter le formulaire FaaS compatible Java "Fn Project"
J'ai essayé d'afficher le calendrier sur la console Eclipse en utilisant Java.
J'ai essayé de créer une fonction de groupe (babillard) avec Rails
J'ai essayé de créer une classe parent d'objet de valeur dans Ruby
J'ai essayé de créer une simple application Android de reconnaissance faciale en utilisant OpenCV
Comment créer un résumé de calendrier Java
J'ai essayé de résumer les méthodes utilisées
L'histoire de l'oubli de fermer un fichier en Java et de l'échec
Une histoire à laquelle j'étais accro lors du test de l'API à l'aide de MockMVC
J'ai essayé de résumer les expressions Java lambda
Je voulais écrire un processus équivalent à une instruction while avec l'API Java 8 Stream
[iOS] J'ai essayé de créer une application de traitement de type insta avec Swift
J'ai essayé le nouveau yuan à Java
J'ai essayé de créer une API Web qui se connecte à DB avec Quarkus
Un débutant Java a essayé de créer une application Web simple à l'aide de Spring Boot
[Introduction à Java] J'ai essayé de résumer les connaissances que j'estime essentielles
Comment créer un robot Discord (Java)