java-ArrayList集合类

新一
2021-11-15 / 1 评论 / 106 阅读 / 正在检测是否收录...

ArrayList示例

package Z.Kbzl.jihe;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ListDemo01 {

    public static void main(String[] args) {
        //ArrayList 数组结构,是有序(连续),可以通过下标来访问..
        //ArrayList 集合有序的,大小可变,查询效率高.

        //1.定义一个集合对象ArrayList
        ArrayList list=new ArrayList();
        //2.给对象中添加数据
        //list.add(1);//下标0
        //list.add("list");//下标1
        //list.add("123");//下标2
        News news=new News(2, "三国演义", "罗贯中", new Date());//下标3
        list.add(news);
        list.add(new News(3, "水浒传", "施耐庵",new Date()));//下标4
        list.add(new News(4, "红楼梦", "曹雪芹",new Date()));//下标5
        //3.获取集合中数据条数
        System.out.println(list.size());//6条数据,因为上面添加了6条
        
        //4.打印显示集合数据
        //System.out.println(list.get(3));//打印下标3的数据
        
        for(Object i:list) {//利用增强for打印所有数据
            System.out.println(i);
        }
        System.out.println("=========================");
 
        //删除list集合数据
        //list.remove(0);//根据下标删除
        //list.clear();//清空集合中所有数
        
        for (int i = 0; i < list.size(); i++) {
            News n=(News)list.get(i);
            System.out.println(n);
            System.out.println(n.getName()+"——"+n.getAuthor());
        }
    }
}

利用ArrayList做一道题

我们先建一个学生类

package Z.Kbzl.jihe;

public class Student {

    
    int xh;//学号
    String name;//姓名
    String age;//性别
    int sex;//年龄
    String site;//地址
    
    public Student(int xh, String name, String age, int sex, String site) {
        super();
        this.xh = xh;
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.site = site;
    }
    
    public void getStudent() {
        System.out.println("学号:"+xh);
        System.out.println("姓名:"+name);
        System.out.println("性别:"+age);
        System.out.println("年龄:"+sex);
        System.out.println("地址:"+site+"\n");
    }
    
}

再建一个测试类

package Z.Kbzl.jihe;

import java.util.ArrayList;
import java.util.LinkedList;

public class StudentText {

    public static void main(String[] args) {
        //1.定义一个集合对象ArrayList
         ArrayList stu=new ArrayList();
        //2.add new学生类调用构造方法进行赋值
         stu.add(new Student(12345678, "新一", "男", 18, "咸阳"));
         stu.add(new Student(14725836, "张三", "男", 18, "东北"));
         stu.add(new Student(15935746, "李四", "男", 18, "四川"));
         stu.add(new Student(95135784, "牛马", "男", 18, "草原"));
         System.out.println("班里一共有"+stu.size()+"位学生");
         System.out.println(" ");
         //循环打印每个人的信息
         for(Object i:stu) {
             Student s=(Student)i;//强制转换学生类
             s.getStudent();
         }
    }
}

这样就实现了简单的存储

再来一道复杂一点的题

一样先建一个学生类,根据题目需要写一些属性和方法

package Z.Kbzl.jihe;

public class Student2 {

    String name;//姓名
    int sex;//年龄
    int a;//学生成绩
    
    
    
    public Student2(String name, int a, int sex) {
        super();
        this.name = name;
        this.a = a;
        this.sex = sex;
    }
    

    @Override//重写toString方法
    public String toString() {
        return "姓名:"+name+"\n年龄:"+sex+"岁"+"\n成绩:"+a+"分"+"\n";
    }
  
    public int getSex() {
        return sex;
    }

    public void setSex(int sex) {
        this.sex = sex;
    }

    public int getA() {
        return a;
    }

    public void setA(int a) {
        this.a = a;
    }

    public Student2() {
        // TODO Auto-generated constructor stub
    }
}

我们再去建一个测试类

package Z.Kbzl.jihe;

import java.util.ArrayList;

public class Student2Text {

    public static void main(String[] args) {
        //1.定义一个集合对象ArrayList
         ArrayList stu2=new ArrayList();
        //2.add new学生类调用构造方法进行赋值
         stu2.add(new Student2("小赵", 21, 20));
         stu2.add(new Student2("张三", 32, 17));
         stu2.add(new Student2("李四", 41, 16));
         stu2.add(new Student2("阿花", 61, 19));
         stu2.add(new Student2("小冯", 94, 19));
         stu2.add(new Student2("小周", 35, 19));
         stu2.add(new Student2("新一", 91, 17));
         
         System.out.println("满足18岁的成员如下");
         System.out.println(" ");
             for(Object i:stu2) {
                 Student2 s=(Student2)i;
                 if(s.getSex()>18) {//判断年龄大于18
                 System.out.println(s.toString());
                 }
             }
             System.out.println(" ");
             System.out.println("最大成绩的学员是");
             Student2 sv=(Student2)stu2.get(0);
             int max=sv.getA();//最大
             int maxindex=0;//记录下标
             for (int i = 0; i <stu2.size(); i++) {
                 Student2 ss=(Student2)stu2.get(i);
                 int sc=ss.getA();
                 if(sc>max) {//求最大
                 max=sc;//最大成绩
                 maxindex=i;
                 }
             }
             System.out.println(stu2.get(maxindex));//打印最大
             System.out.println(" ");
             System.out.println("最小成绩的学员是");
             int min=sv.getA();//最小
             int minindex=0;//记录下标
             for (int i = 0; i <stu2.size(); i++) {
                 Student2 ss=(Student2)stu2.get(i);
                 int sc=ss.getA();
                 if(sc<min) {//求最小
                 min=sc;//最小成绩
                 minindex=i;
                 }
             }
             System.out.println(stu2.get(minindex));//打印最小
             System.out.println(" ");
             System.out.println("已经删除成绩小于60的学生了");
             for(Object i:stu2) {
                 Student2 s=(Student2)i;
                 if(s.getA()>60) {//判断成绩小于60
                 System.out.println(s.toString());
                 }
             }
             System.out.println(" ");
             
             int aa=0;//记录总成绩
             for(Object i:stu2) {//记录总成绩
                 Student2 s=(Student2)i;
                 aa+=s.getA();
             }
             
             System.out.println("平均成绩是:"+aa/stu2.size());//推算平均成绩
             System.out.println("平均成绩的1.5倍是:"+(aa/stu2.size())*1.5);//推算平均成绩的1.5倍
             System.out.println("大于平均成绩1.5倍的人有:");
             System.out.println(" ");
             for(Object i:stu2) {
                 Student2 s=(Student2)i;
                if(s.getA()>aa/stu2.size()*1.5) {//判断平均成绩的1.5倍
                    System.out.println(s.toString());
                }
             } 
    }

}

本文共 1352 个字数,平均阅读时长 ≈ 4分钟
2

打赏

:D 获取中...

更多精彩文章,按Ctrl+D收藏本站!

评论 (1)

取消
  1. 头像
    新一 作者
    Windows 10 · Google Chrome
    沙发

    java集合

    回复