>Java >java지도 시간 >ArrayList 컬렉션

ArrayList 컬렉션

巴扎黑
巴扎黑원래의
2017-06-26 09:52:392459검색

세트가 나타나는 이유
배열에 저장된 데이터는 고정된 저장소이므로 저장할 데이터의 개수가 불확실할 때 배열이 만족되지 않아 세트가 나타납니다
세트에 저장된 데이터의 개수는 데이터에 따라 변경됩니다. 양의 변경에 따라 변경되므로 국경을 넘나들거나 많은 공간을 낭비하지 않습니다. 저장되는 데이터의 수는 가변적입니다.)


ArrayList 객체 생성 형식은 다음과 같습니다. ArrayList Collection name = new ArrayList()
: 컬렉션에 저장될 데이터 유형과 저장하려는 내용을 나타내는 일반 E 유형을 원하는 대로 변경하세요. 원하는 유형의 데이터를 저장하려면 E를 String



Note로 변경하세요. 참고: 컬렉션은 참조 유형 데이터만 저장할 수 있습니다

기본 데이터 유형은 참조 데이터 유형 표현 Form
바이트에 해당합니다. Byte short Short
int Integer
long Long
float Float double Double char Character
boolean Boolean


ArrayList 공통 함수

add
public boolean add(E e)
public void add(int index ,E 요소) // 지정된 인덱스 위치에 요소 추가

요소 가져오기 public E get(int index) // 인덱스 값을 기준으로 요소 가져오기

요소 개수 가져오기
public int size() // 가져오기 요소 개수 Number

요소 삭제
public boolean Remove(Object o) // 요소 직접 삭제

public E Remove(int index) // 인덱스에 따라 요소 삭제 후 삭제된 요소 반환


요소 수정
public E set (int index ,E 요소)// 요소를 사용하여 지정된 인덱스의 요소를 대체하고 대체된 요소를 반환합니다


학생 관리 시스템 실습

학생 정보에는 학생 번호, 이름, 나이, 고향
인쇄 환영 문구가 포함됩니다.
해당 기능을 인쇄하고 사용자 입력을 받습니다

1. 학생 정보 보기 시스템에 학생 정보가 없으면 해당 프롬프트가 표시됩니다. 시스템에 학생 정보가 있으면 학생 정보가 인쇄됩니다.
2. 학생 정보 추가
키보드로 학생 입력 정보 구성 개체가 컬렉션에 추가됩니다
중복 제거는 학생 번호를 기준으로 중복되지 않은 학생 번호만 세트에 추가할 수 있습니다

3. 수정 학생정보
학번을 기준으로 학생을 찾아서 수정하세요
학번이 없으면 해당 Tip을 주세요
학번이 발견되면 계속해서 새로운 정보를 수집하고 새로운 정보를 활용하여 원래 요소를 수정하세요
4. 학생정보 삭제
학번을 기준으로 학생 삭제
학번이 지정되지 않은 경우 지정된 프롬프트가 표시됩니다.
학번이 있는 경우 해당 항목 삭제
5. 학생정보 관리 시스템 종료
종료하라는 메시지를 표시하고
프로그램을 종료합니다.
코드 데모

  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     }





위 내용은 ArrayList 컬렉션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.