• Java学习记录(补充五:面对对象集合)


    面对对象集合
    package day10;
    public class Student { private String number; private String name; private int age; public Student(String number, String name, int age) { this.number = number; this.age = age; this.name = name; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
    package day10;
    
    import java.util.List;
    
    
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.LinkedList;
    
    //collection接口:存储一组不唯一,无序的对象
    //子接口: 1.List:存储一组不唯一,有序(插入顺序)的对象
    //         2.Set:存储一组唯一,无序的对象
    //Map接口:存储一组键值对象,提供key(值)到value(值)的映像
    public class Demo01 {
        public static void main(String[] args) {
            //创建一个集合,长度可变的数组(默认长度为10)
            List<Object> list = new ArrayList<Object>();
            //1:使用集合对数据进行管理操作
            //1:存
            list.add("a");
            list.add("b");
            //2:取
            System.out.println(list.get(0));
            //3:获取集合的长度
            System.out.println(list.size());
            //4:删除
            list.remove(0);
            
            
            /****************练习*****************/
            //定义一个学生类:包含学号,姓名,年龄
            //定义一个List集合,用于保存学院信息
            //数据不少于5个
            
            
            
            
            System.out.println("***************************************");
            //泛型集合:指定机集合存储的数据类型
            //和数组类似
            
            //定义了Student类型的集合
            List<Student> students = new ArrayList<Student>();
            students.add(new Student("jredu1","zhangsan1",12));
            students.add(new Student("jredu2","zhangsan2",22));
            //遍历数组
            //方法1:for循环
            for (int i = 0; i < students.size(); i++) {
                Student s = (Student) students.get(i);
                System.out.println(s.getName()+s.getNumber()+s.getAge());
            }
            
            //方法2:for-each循环
            for(Student s:students){
                System.out.println(s.getNumber());
            }
            
            //方法3:使用迭代器
            Iterator<Student> it = students.iterator();
            while(it.hasNext()){
                Student s = it.next();
                System.out.println(s.getNumber());
            }
            
            
            /***********************************/
            LinkedList<Student> lnk = new LinkedList<Student>();
            //1:添加一个集合的数据进来
            lnk.addAll(students);
            for(Student s : lnk){
                System.out.println(s.getName());
            }
            //2:在头部添加一个学生
            lnk.addFirst(new Student("jredu", "dsdsd", 12));
            for(Student s : lnk){
                System.out.println(s.getName());
            }
        }
    }
    package day10;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    
    public class StudentTest {
        public static void main(String[] args) {
            
            List<Student> list = new ArrayList<Student>();
            Student []s = new Student[5];
            Scanner input = new Scanner(System.in);
            for (int i = 0; i < 5; i++) {
                System.out.println("请输入学号");
                String num = input.next();
                System.out.println("请输入名字");
                String name = input.next();
                System.out.println("请输入年龄");
                int age = input.nextInt();
                s[i] = new Student(num,name,age); 
                list.add(s[i]);
            }
            for (int i = 0; i < 5; i++) {
                Student a =(Student)list.get(i);
                System.out.println(a.getNumber()+" "+a.getName()+" "+a.getAge());
                
            }
            input.close();
        }
    }

    结果图:

                                     

    集合框架知识总结

    数组

    1. 长度固定:不能添加多余元素

    集合框架

    1. 接口(规范部分) 
      • collection:接口存储一组不唯一,无序的对象(不唯一,无序) 
        1. List:接口存储一组不唯一,有序(插入顺序)的对象
        2. set:接口存储一组唯一,无序的对象
      • Map:接口存储一组键值对象,提供key(键)到value(值)的映像
    2. 类(具体): 
      • List
    3. ArrayList:实现了长度可变的数组,在内存里分配连续的空间。遍历元素和随机访问元素的效率比较高。实例:List students = new ArrayList(); 
      students.add(new Student(“jredu001”, “zhang3”, 20)); 
      students.add(new Student(“jredu002”, “li4”, 25));

      for(int i=0;i<students.size();i++){
          Student s = students.get(i);
          System.out.println(s.getNo());
      }
      
    4. LinkList:采用链表存储方式。插入,删除元素时效率比较高。列子:/************************
      System.out.println(“****LinkedList*********”); 
      LinkedList lnk = new LinkedList(); 
      //1、添加一个集合的数据进来 
      lnk.addAll(students); 
      for(Student s : lnk){ 
      System.out.println(s.getName()); 

      System.out.println(“********************”); 
      //2、在头部添加一个学生 
      lnk.addFirst(new Student(“jredu003”, “wang5”, 24));

      for(Student s : lnk){
          System.out.println(s.getName());
      }
      
    5. 使用方法:

    方法名说明
    void addFirst(object o) 在列表的首部添加元素
    void addLast(object o) 在列表的末尾添加元素
    Object getFirst() 返回列表中的第一个元素
    Object getLirst() 返回列表中的最后一个元素
    Object removeFirst() 删除并返回列表中的第一个元素
    Object removeLarst() 删除并返回列表中的最后一个数据

    - set 
    1. HashSet 
    2. TreeSet 
    - Map 
    3. 算法:collection提供了对集合进行排序,遍历等多种算法实现 
    4. 如何遍历 
    - 方法1:通过for循环和get方法配合实现遍历 
    - 方法2:通过迭代器Iterator实现遍历

  • 相关阅读:
    QQ家园熄灭不了解决方法
    那时我们还年轻[转]
    QQ游戏图标熄灭大全
    FlashDevelop快捷键
    linux 全局搜索某一文件并将文件内容并进行替换的命令
    navigate 10.0.5 regist cn
    线程、socket、stl 以及并发设计
    drupal真不错
    网卡问题解决思路linux版
    socket错误:Program received signal SIGPIPE, Broken pipe
  • 原文地址:https://www.cnblogs.com/lizuowei/p/7441736.html
Copyright © 2020-2023  润新知