[JAVA] J'ai résumé le cadre de la collection.

introduction

Bonjour. Je suis Wataku, un programmeur côté serveur qui étudie la programmation dans une certaine école. : détendu:

Cette fois, j'ai résumé le framework de collecte en Java. Comme c'était un domaine compliqué pour moi personnellement, je le résume également pour l'étudier, donc si vous avez des suggestions telles que des erreurs, veuillez commenter.

Allons-y.

Qu'est-ce qu'une collection?

En premier lieu, vous pouvez considérer une collection comme un tableau qui peut manipuler un grand nombre de valeurs à la fois, bien que la taille ne soit pas fixe.

Étant donné que la taille n'est pas fixe, vous pouvez stocker autant de données que nécessaire.

Qu'est-ce qu'un cadre de collecte?

Il existe trois types principaux dans la collection, selon l'application, comme illustré ci-dessous.

Le ** Collection Framework ** est conçu pour être géré de manière flexible avec de tels types.

Qu'est-ce qu'une classe de collection?

Qu'est-ce que ArrayList

Comme son nom l'indique, "Array" peut être manipulé comme un tableau.

Au fait, il existe d'autres classes telles que ** LinkedList ** et ** Stack ** qui implémentent List, mais je ne les présenterai pas ici. Je voudrais écrire s'il y a une autre opportunité.

Déclaration / initialisation

ArrayList<Moule>Nom de variable= new ArrayList<Moule>();

À la fin de la classe, il y a une partie qui spécifie le type entouré de ** "<" ** et ** ">" **. C'est une façon d'écrire peu familière, mais elle s'appelle la ** fonction Generics ** nouvellement introduite à partir de J2SE 5.0, et spécifie quel type de valeur est stocké dans cette ArrayList. Generics Spécifiez le nom de classe pour cette pièce de type. Et la valeur qui peut être stockée en tant qu'élément sera l'objet de la classe spécifiée ici. Veuillez noter que String est correct, mais int et float ne peuvent pas être spécifiés. En effet, String est une classe String, mais int et float ne sont pas des classes mais des types de base.

Par conséquent, si vous souhaitez gérer des types de base tels que le type int et le type float, la classe ** (classe wrapper) ** correspondant à chaque type de base est préparée, utilisez-la.

Classe correspondante Type de base
Boolean boolean
Character char
Byte byte
Short short
Integer int
Long long
Float float
Doubule double

Par exemple, pour créer une ArrayList qui stocke des entiers et une ArrayList qui stocke des chaînes, ce sera comme suit.

ArrayList<Integer> array = new ArrayList<Integer>();
ArrayList<String> array = new ArrayList<String>();

Méthode

--Insérer des données

add(valeur)

** add (index, value) ** vous permet d'insérer une valeur dans l'index spécifié.

get(indice)
size()

--S'il est vide

isEmpty()

--Si la valeur est incluse

contains(valeur)
indexOf(valeur)

--Supprimer l'index spécifié

remove(indice)

Set

Liste, définir la boucle

Utilisez l'interface ** Italator **.

<Méthode principale>
· Prochain():Obtenez la valeur suivante
・ HasNext():S'il y a la valeur suivante
for(Iterator ite = stock.itarator; ite.hasNext;) {
     //ite.Jouez avec le suivant
}

Exemple de code

①List



import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class UseList {

	public static void main(String[] args) {
		//TODO talon de méthode généré automatiquement
		List<Integer> store = new ArrayList<>();

		System.out.println("Avant l'enregistrement: le nombre total d'éléments" + store.size() + "Ça y est.");
		System.out.println("La liste est-elle actuellement vide?" + store.isEmpty());

		store.add(54);
		store.add(24);
		store.add(47);
		store.add(0);
		store.add(6);
		store.add(24);
		store.add(85);
		store.add(1);
		store.add(5);
		store.add(6);
		store.add(98);
		store.add(47);
		store.add(54);
		store.add(96);
		store.add(9);

		System.out.println("Avant l'enregistrement: le nombre total d'éléments" + store.size() + "Ça y est.");
		System.out.println("La liste est-elle actuellement vide?" + store.isEmpty());

		System.out.println("La valeur de l'indice 8 est" + store.get(8) + "est.");
		System.out.println("La valeur 1 est-elle incluse?" + store.contains(1));
		System.out.println("Quel est l'indice de valeur 1?" + store.indexOf(1));

		System.out.println("-------------Jetons un coup d'œil au contenu--------------");
		for(Iterator<Integer> ite = store.iterator(); ite.hasNext();) {
			Integer element = ite.next();
			System.out.println(element);
		}
		System.out.println("Notez que certaines valeurs sont dupliquées");

		store.remove(8);

		System.out.println("Après suppression: tous les éléments" + store.size() + "Ça y est.");
		System.out.println("-------------Regardons à nouveau le contenu--------------");
		for(Integer element : store) {
			System.out.println(element);
		}

		store.add(12, 346);
		System.out.println("Après inscription: tous les éléments" + store.size() + "Ça y est.");
		System.out.println("-------------Regardons à nouveau le contenu--------------");
		for(Integer element : store) {
			System.out.println(element);
		}
	}

}

résultat

Avant l'enregistrement: le nombre total d'éléments est de 0.
La liste est-elle actuellement vide? vrai
Avant l'enregistrement: Le nombre total d'éléments est de 15.
La liste est-elle actuellement vide? faux faux
La valeur de l'indice 8 est 5.
La valeur 1 est-elle incluse? vrai
Quel est l'indice de valeur 1? 7
-------------Jetons un coup d'œil au contenu--------------
54
24
47
0
6
24
85
1
5
6
98
47
54
96
9
Notez que certaines valeurs sont dupliquées
Après suppression: il y a 14 éléments au total.
-------------Regardons à nouveau le contenu--------------
54
24
47
0
6
24
85
1
6
98
47
54
96
9
Après inscription: Il y a 15 éléments au total.
-------------Regardons à nouveau le contenu--------------
54
24
47
0
6
24
85
1
6
98
47
54
346
96
9

②Set


import java.util.HashSet;
import java.util.Set;
public class UseSet {

	public static void main(String[] args) {
		//TODO talon de méthode généré automatiquement
		Set<Integer> store = new HashSet<>();
		
		store.add(54);
		store.add(24);
		store.add(47);
		store.add(0);
		store.add(6);
		store.add(24);
		store.add(85);
		store.add(1);
		store.add(5);
		store.add(6);
		store.add(98);
		store.add(47);
		store.add(54);
		store.add(96);
		store.add(9);
		
		System.out.println("Le nombre d'éléments est" + store.size() + "Ça y est.");
		System.out.println("-------------Jetons un coup d'œil au contenu--------------");
		for(Integer element : store) {
			System.out.println(element);
		}
	}

}

résultat

Le nombre d'éléments est de 11.
-------------Jetons un coup d'œil au contenu--------------
0
96
1
98
85
5
54
6
24
9
47

Map


Map<string, Integer> maps new HashMap<>();

Méthode spécifique à la carte

put(Clé,valeur)
containsKey(Clé)
containsValue(valeur)

--Supprimer la clé spécifiée

remove(Clé)

Boucle de carte

(Remarque) La carte ne peut pas être bouclée telle quelle, donc boucler l'objet Set découpé en utilisant "entitySet".

Set entity = maps.entitySet();
for(Iterator ite = entity.itarator; ite.hasNext;) {
     //ite.Jouez avec le suivant
}

Utilisation différente de 3 types de carte

Map + Entity Même en Java, créez une classe d'entité et utilisez la clé Map comme clé primaire de base de données. * Le mappage O-R * peut être effectué en stockant la "nouvelle" entité dans la valeur.

Exemple de code



import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class UseMap {
	public static void main(String[] args) {

		HashMap<Integer, String> map = new HashMap<>();

		System.out.println("Le nombre actuel d'éléments est" + map.size() + "C'est");
		System.out.println("La carte est-elle vide?" + map.isEmpty());

		map.put(1, "Tanibe");
		map.put(3, "Kuroi");
		map.put(5, "Kaneko");
		map.put(7, "Inoue");
		map.put(11, "Yamamoto");
		map.put(13, "Nakamura");
		map.put(15, "Avec matin");
		map.put(17, "Nakajima");
		map.put(19, "Takeda");
		map.put(21, "Kimoto");
		map.put(25, "Saito");
		map.put(27, "Asuka");
		map.put(29, "Hoshino");

		System.out.println("Le nombre actuel d'éléments est" + map.size() + "C'est");
		System.out.println("La carte est-elle vide?" + map.isEmpty());
		System.out.println("--------------------Jetons un coup d'œil au contenu(Version de l'itérateur)------------------------");
		Set<Map.Entry<Integer, String>> entries = map.entrySet();
		for(Iterator<Map.Entry<Integer, String>> ite = entries.iterator(); ite.hasNext();) {
			Map.Entry<Integer, String> element = ite.next();
			Integer key = element.getKey();
			String value = element.getValue();
			System.out.println("key=" +key + ":value=" + value);
		}

		System.out.println("--------------------Jetons un coup d'œil au contenu(Version pratique)------------------------");
		for(Map.Entry<Integer, String> element : map.entrySet()) {
			Integer key = element.getKey();
			String value = element.getValue();
			System.out.println("key=" +key + ":value=" + value);
		}

		System.out.println("je" + map.get(25) + "est");
		System.out.println("Avez-vous No22?" + map.containsKey(22));
		System.out.println("Avez-vous M. Tanaka? :" + map.containsValue("Tanaka"));

		String name = map.put(9, "Nakayama");
		System.out.println(name + "Écrasé");
		for(Map.Entry<Integer, String> element : map.entrySet()) {
			System.out.println(element);
		}

		name = map.remove(25);
		System.out.println(name + "A été tué");
		for(Map.Entry<Integer, String> element : map.entrySet()) {
			System.out.println(element);
		}

		Set<Integer> keySet = map.keySet();
		for(Integer integer : keySet) {
			System.out.println(integer);
		}

		Collection<String> values = map.values();
		for(String eachName : values) {
			System.out.println(eachName);
		}
	}
}

résultat

Le nombre actuel d'éléments est 0
La carte est-elle vide? vrai
Le nombre actuel d'éléments est de 13
La carte est-elle vide? faux faux
--------------------Jetons un coup d'œil au contenu(Version de l'itérateur)------------------------
key=1:value=Tanibe
key=3:value=Kuroi
key=5:value=Kaneko
key=7:value=Inoue
key=11:value=Yamamoto
key=13:value=Nakamura
key=15:value=Avec matin
key=17:value=Nakajima
key=19:value=Takeda
key=21:value=Kimoto
key=25:value=Saito
key=27:value=Asuka
key=29:value=Hoshino
--------------------Jetons un coup d'œil au contenu(Version pratique)------------------------
key=1:value=Tanibe
key=3:value=Kuroi
key=5:value=Kaneko
key=7:value=Inoue
key=11:value=Yamamoto
key=13:value=Nakamura
key=15:value=Avec matin
key=17:value=Nakajima
key=19:value=Takeda
key=21:value=Kimoto
key=25:value=Saito
key=27:value=Asuka
key=29:value=Hoshino
Je suis Saito
Avez-vous No22? faux faux
Avez-vous M. Tanaka? : Faux
Null écrasé
1=Tanibe
3=Kuroi
5=Kaneko
7=Inoue
9=Nakayama
11=Yamamoto
13=Nakamura
15=Avec matin
17=Nakajima
19=Takeda
21=Kimoto
25=Saito
27=Asuka
29=Hoshino
J'ai tué M. Saito
1=Tanibe
3=Kuroi
5=Kaneko
7=Inoue
9=Nakayama
11=Yamamoto
13=Nakamura
15=Avec matin
17=Nakajima
19=Takeda
21=Kimoto
27=Asuka
29=Hoshino
1
3
5
7
9
11
13
15
17
19
21
27
29
Tanibe
Kuroi
Kaneko
Inoue
Nakayama
Yamamoto
Nakamura
Avec matin
Nakajima
Takeda
Kimoto
Asuka
Hoshino


import java.util.HashMap;
import java.util.Map;
public class UseMapAndEntity {

	public static void main(String[] args) {
		//TODO talon de méthode généré automatiquement
		Map<Integer, PersonalData> stock = new HashMap<>();

		PersonalData taro = new PersonalData(46887, "Taro", 72.8, 167.3, 23, 1);
		PersonalData jiro = new PersonalData(12547, "Jiro", 57.7, 170.4, 28, 1);
		PersonalData hanako = new PersonalData(63544, "Hanako", 53.1, 155.4, 19, 0);
		PersonalData keisuke = new PersonalData(34544, "Keisukr", 98.4, 192.4, 35, 1);

		stock.put(46887, taro);
		stock.put(12457, jiro);
		stock.put(63544,hanako);
		stock.put(34544, keisuke);

		System.out.println("L'élément est" + stock.size() + "C'est");

		System.out.println("--------------Jetons un coup d'œil au contenu---------");
		for(Map.Entry<Integer, PersonalData> element :stock.entrySet()) {
			Integer key = element.getKey();
			PersonalData person = element.getValue();

			StringBuffer  sbCurry = new StringBuffer();
			sbCurry.append("Numéro de membre");
			sbCurry.append(key);
			sbCurry.append("Personne de:");
			sbCurry.append("Nom =");
			sbCurry.append(person.getName());
			sbCurry.append(";");
			sbCurry.append("Hauteur =");
			sbCurry.append(person.getHeight());
			sbCurry.append("cm;");
			sbCurry.append("Poids =");
			sbCurry.append(person.getWeight());
			sbCurry.append("kg");
			System.out.println(sbCurry.toString());

		}
	}

}


public class PersonalData {
	private Integer _id;
	private String _name;
	private Double _weight;
	private Double _height;
	private Integer _age;
	private Integer _sex;

	//constructeur
	public PersonalData (Integer id, String name, Double weight, Double height, Integer age, Integer sex) {
		_id = id;
		_name = name;
		_weight = weight;
		_height = height;
		_age = age;
		_sex = sex;
	}

	//Méthode d'accesseur
	public Integer getId() {
		return _id;
	}
	public void setId(Integer id) {
		_id = id;
	}

	public String getName() {
		return _name;
	}
	public void setName(String name) {
		_name = name;
	}

	public Double getWeight() {
		return _weight;
	}
	public void setWeight(Double weight) {
		_weight = weight;
	}

	public Double getHeight() {
		return _height;
	}
	public void setHeight(Double height) {
		_height = height;
	}

	public Integer getAge() {
		return _age;
	}
	public void setAge(Integer age) {
		_age = age;
	}

	public Integer getSex() {
		return _sex;
	}
	public void setSex(Integer sex) {
		_sex = sex;
	}
}

résultat

Il y a 4 éléments
--------------Jetons un coup d'œil au contenu---------
Personne avec le numéro de membre 34544:Nom = Keisukr;Hauteur = 192.4cm;Poids = 98.4kg
Personne avec le numéro de membre 46887:Nom = Taro;Hauteur = 167.3cm;Poids = 72.8kg
Personne avec le numéro de membre 63544:Nom = Hanako;Hauteur = 155.4cm;Poids = 53.1kg
Personne avec le numéro de membre 12457:Nom = Jiro;Hauteur = 170.4cm;Poids = 57.7kg

c'est tout. Si vous avez des suggestions telles que quelque chose qui ne va pas, veuillez nous contacter. Merci d'avoir lu jusqu'au bout.

Recommended Posts

J'ai résumé le cadre de la collection.
J'ai essayé le framework Java "Quarkus"
[jour: 5] J'ai résumé les bases de Java
[Java] J'ai personnellement résumé la grammaire de base.
[Java] Cadre de collection
J'ai résumé le format d'affichage de la réponse JSON de Rails
Que dois-je utiliser pour le framework de test [Rails]
J'ai résumé les types et les bases des exceptions Java
Voici quelques articles auxquels les débutants en programmation se sont référés.
J'ai lu le livre de démarrage de Kotlin
J'ai essayé le problème FizzBuzz
[Java] J'ai essayé d'implémenter la combinaison.
J'ai étudié le constructeur (java)
Je voulais faciliter la programmation JavaFX avec Spring Framework
J'ai réussi Ruby Gold, j'ai donc résumé les méthodes d'étude (version novembre 2020)
Depuis que j'ai réussi l'Oracle Java Bronze, j'ai résumé les grandes lignes du test.
J'ai résumé le flux jusqu'à l'implémentation de simple_calendar dans Ruby on Rails.
Descripteur de composé: j'ai calculé CDK
J'ai lu la source de ArrayList que j'ai lu
J'ai lu la source d'Integer
J'ai essayé d'expliquer la méthode
Considération sur le framework de persistance Java 2017 (1)
J'ai lu la source de Long
[Rails] J'ai essayé de supprimer l'application
L'histoire que je voulais développer Zip
J'ai lu la source de Short
Création d'un framework Web de type Atlassian
J'ai lu la source de Byte
J'ai lu la source de String