Maison >Java >javaDidacticiel >Collection ArrayList
La raison pour laquelle les ensembles apparaissent
Les données stockées dans les tableaux sont un stockage fixe Lorsque le nombre de données à stocker est incertain, le tableau n'est pas satisfait et des ensembles apparaissent
Des ensembles. Le nombre de données stockées peut changer à mesure que la quantité de données change, sans provoquer de perte d'espace transfrontalière ou importante
Le nombre de données stockées est variable
ArrayList :
Sous le package java.util
La couche inférieure maintient un tableau
Le thread n'est pas synchronisé (vitesse de traitement rapide)
Le format de création des objets ArrayList :
ArrayList
Remarque : Les collections ne peuvent stocker que des données de type référence
de base types de données Représentation du type de données de référence correspondant
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
Fonctions communes de ArrayList
Ajouter
public boolean add(E e)
public void add(int index,E element) // Ajouter à l'index spécifié position Element
Obtenir l'élément
public E get(int index) // Récupérer l'élément en fonction de la valeur de l'index
Récupérer le nombre d'éléments
public int size() // Récupère le nombre d'éléments
Supprimer l'élément
public boolean Remove(Object o) // Supprime l'élément directement
public E Remove(int index) // Supprime l'élément en fonction de l'index et renvoyer l'élément supprimé
Modifier l'élément
public E set(int index,E element)// Utiliser l'élément pour remplacer l'élément à l'index spécifié et renvoyer l'élément remplacé
Exercice sur le système de gestion des étudiants
Les informations sur l'étudiant comprennent : le numéro de l'étudiant, le nom, l'âge, la ville natale
Imprimer la déclaration de bienvenue
Imprimer les fonctions correspondantes et recevoir les commentaires de l'utilisateur
1. Afficher l'étudiant informations
Si le système S'il n'y a pas d'informations sur l'étudiant, l'invite correspondante sera donnée
S'il y a des informations sur l'étudiant dans le système, les informations sur l'étudiant seront imprimées dans le format spécifié
2. Ajouter des informations sur l'étudiant
Saisissez les informations de l'étudiant à l'aide du clavier et ajoutez l'objet à la collection
Supprimez les doublons en fonction de l'identifiant de l'étudiant. Seuls les identifiants d'étudiant non dupliqués peuvent être ajoutés à la collection
3. Modifier l'étudiant. informations
Recherchez l'étudiant en fonction de la carte d'étudiant et modifiez-la
S'il n'y a pas de carte d'étudiant, donnez à Prompt l'invite correspondante
Si le numéro d'étudiant est trouvé, continuez à collecter de nouvelles informations et utilisez les nouvelles informations pour modifier les éléments d'origine
4. Supprimer les informations sur l'étudiant
Supprimer l'étudiant en fonction du numéro d'étudiant
Si aucun numéro d'étudiant n'est spécifié, donnez à Issue l'invite spécifiée
S'il y a un numéro d'étudiant, supprimez le élément spécifié
5. Quitter le système de gestion des informations sur les étudiants
Invite à quitter
et terminer le programme
Démonstration de code
1 public static void main(String[] args) { 2 // 初始化数据 3 // 创建一个集合容器 可以存储学生的信息 4 ArrayList<Student> list = new ArrayList<Student>(); 5 // =========================测试数据================================ 6 // Student s1 = new Student("9001", "阿拉甲", "18", "迪拜"); 7 // Student s2 = new Student("9002", "阿拉yi", "18", "迪拜"); 8 // Student s3 = new Student("9003", "阿拉饼", "18", "迪拜"); 9 // list.add(s1); 10 // list.add(s2); 11 // list.add(s3); 12 // System.out.println("初始化完毕"); 13 // =========================测试数据================================ 14 15 System.out.println("-------------------欢迎使用学生管理系统------------------------"); 16 17 // 死循环 18 while (true) { 19 // 展示功能菜单 20 System.out.println("================================="); 21 System.out.println("1.查看学生信息"); 22 System.out.println("2.添加学生信息"); 23 System.out.println("3.修改学生信息"); 24 System.out.println("4.删除学生信息"); 25 System.out.println("5.退出学生信息管理系统"); 26 System.out.println("请输入对应功能的序号"); 27 System.out.println("================================="); 28 // 接收用户的输入 29 Scanner sc = new Scanner(System.in); 30 int user = sc.nextInt(); 31 // 根据用户的输入进行功调用 32 switch (user) { 33 case 1: 34 show(list); 35 break; 36 case 2: 37 add(list); 38 break; 39 case 3: 40 upd(list); 41 break; 42 case 4: 43 del(list); 44 break; 45 case 5: 46 System.out.println("感谢使用管理系统 欢迎下次再来哦 "); 47 // 终止虚拟机 48 System.exit(0); 49 // return; 50 break; 51 52 default: 53 System.out.println("对不起 没有这个功能 ,请控制你自己 "); 54 break; 55 } 56 } 57 } 58 59 // 功能方法s 60 public static void del(ArrayList<Student> list) { 61 // 1.提示输入学号 62 Scanner sc = new Scanner(System.in); 63 System.out.println("请输入学号"); 64 String id = sc.next(); 65 66 // 2.查找 67 // 定义标记 68 int index = -1; 69 // 遍历比较 并修改 70 for (int i = 0; i < list.size(); i++) { 71 Student tmp = list.get(i); 72 if (tmp.getId().equals(id)) { 73 // 找到了 74 // 改变标记 75 index = i; 76 break; 77 } 78 } 79 // 3.判断结果 80 // 判断标记 81 if (index == -1) { 82 // 没有找到 83 System.out.println("您输入的学号 咱们系统没有, 请重新选择功能"); 84 } else { 85 // 找到了 执行删除 86 list.remove(index); 87 System.out.println("删除完毕"); 88 } 89 } 90 91 public static void upd(ArrayList<Student> list) { 92 // 1.提示输入学号 93 Scanner sc = new Scanner(System.in); 94 System.out.println("请输入学号"); 95 String id = sc.next(); 96 97 // 2.查找 98 // 定义标记 99 int index = -1; 100 // 遍历并比较 101 for (int i = 0; i < list.size(); i++) { 102 Student tmp = list.get(i); 103 if (tmp.getId().equals(id)) { 104 // 找到了 105 // 修改标记 106 index = i; 107 break; 108 } 109 } 110 // 3.根据查找的结果做不同的动 111 // 判断标记 112 if (index == -1) { 113 // 没找到, 114 System.out.println("您输入的学号 咱们系统中没有 ,请重新选择功能 "); 115 } else { 116 // 找到了 117 // 3.收集其他信息 118 System.out.println("请输入新姓名"); 119 String name = sc.next(); 120 System.out.println("请输入新年龄"); 121 String age = sc.next(); 122 System.out.println("请输入新家乡"); 123 String home = sc.next(); 124 // 4.组成对象添加到集合中 125 Student s = new Student(id, name, age, home); 126 // 修改 127 list.set(index, s); 128 System.out.println("修改完毕"); 129 } 130 131 } 132 133 public static void add(ArrayList<Student> list) { 134 // 1.提示输入学号 135 Scanner sc = new Scanner(System.in); 136 System.out.println("请输入学号"); 137 String id = sc.next(); 138 // 2.根据学号去重 139 140 // 使用用户输入的学号去集合中查找, 如果找到与用户输入的学号一样的学号表示有重复,此时要继续提示输入学号,并继续去重 141 // 直到用户输入的学号与集合中元素的学号不一致的时候再收集其他的信息 142 while (true) { 143 // 定义一个标记 给一个默认值 144 int index = -1; 145 // 遍历集合获取元素的学号与用户输入的学号进行比较 146 for (int i = 0; i < list.size(); i++) { 147 Student tmp = list.get(i); 148 if (tmp.getId().equals(id)) { 149 // 表示重复 150 // 修改标记 151 index = i; 152 break; 153 } 154 } 155 156 // 判断标记 157 if (index == -1) { 158 // 没有重复 159 break; 160 } else { 161 // 有重复 162 System.out.println("您输入的学号 重复了 ,请重新输入学号 "); 163 id = sc.next(); 164 165 } 166 } 167 168 // 3.收集其他信息 169 System.out.println("请输入姓名"); 170 String name = sc.next(); 171 System.out.println("请输入年龄"); 172 String age = sc.next(); 173 System.out.println("请输入家乡"); 174 String home = sc.next(); 175 // 4.组成对象添加到集合中 176 Student s = new Student(id, name, age, home); 177 list.add(s); 178 System.out.println("添加完毕"); 179 } 180 181 public static void show(ArrayList<Student> list) { 182 // 1.判断集合是否有元素 183 if (list.size() == 0) { 184 // 如果没有给出特定的提示 185 System.out.println("系统中没有学生的信息,请选择添加功能"); 186 } else { 187 // 如果有就按照指定格式遍历 188 System.out.println("================学生信息如下===================="); 189 System.out.println("学号\t\t姓名\t\t年龄\t\t家乡"); 190 // 遍历集合获取学生信息 191 for (int i = 0; i < list.size(); i++) { 192 Student tmp = list.get(i); 193 System.out 194 .println(tmp.getId() + "\t\t" + tmp.getName() + "\t\t" + tmp.getAge() + "\t\t" + tmp.getHome()); 195 } 196 System.out.println("===================================="); 197 } 198 System.out.println("展示完毕"); 199 }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!