栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

ArrayList集合概述、ArrayList对于泛型的支持、ArrayList常用API、ArrayList集合案例

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ArrayList集合概述、ArrayList对于泛型的支持、ArrayList常用API、ArrayList集合案例

一、集合概述
与数组类似,也是一种容器,用于装数据。(数组类型长度固定,增删操作不方便。)集合类型不固定,大小可变,非常适合元素个数不确定,且要进行增删操作的业务,同时集合也提供了更多的API。
1、ArrayList集合(一种支持索引的集合)
对象获取:ArrayList list = new ArrayList();
添加元素的方法:publice boolean add(E e)
在某索引处插入元素:publice void add(int index,E element)
2、对于泛型的支持
ArrayList:约束集合对象只能操作某种数据类型的一个泛型类。
ArrayList:只能操作字符串类型的元素
ArrayList:只能操作整型类型的元素(Integer是一个整数类)
ArrayList:任意类型元素。
注意:集合中只能存储引用类型,不支持基本数据类型。
3、常用API、遍历
import java.util.ArrayList;

public class text {
    public static void main(String[] args) {
        //创建ArrayList对象
        ArrayList list = new ArrayList();
        //添加任意类型的元素
        list.add("java");
        list.add("中国");
        list.add(false);
        list.add(12.2);
        list.add(97);
        //①public E get(int index)  返回指定索引处的元素值
        System.out.println(list.get(2));//false
        //②public int size()  返回集合中的元素个数
        System.out.println(list.size());//5
        //遍历集合
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i) + "t");
        }
        System.out.println();
        //③public E remove(int index)  删除指定索引处的元素,返回被删除的元素
        System.out.println(list);//[java, 中国, false, 12.2, 97]
        Object e = list.remove(1);
        System.out.println(list + "被删除的是:" + e);//[java, false, 12.2, 97]被删除的是:中国
        //④public boolean remove(Object o)  删除指定的元素,返回删除是否成功(存在相同元素默认删除第一个)
        list.add(4, "java");
        System.out.println(list);
        System.out.println(list.remove("java")); //true
        System.out.println(list);//[false, 12.2, java, 97]
        //⑤public E set(int index, E element)  修改指定索引处的元素,返回被修改的元素
        System.out.println(list + "被修改的是:" + list.set(3, 65));//[false, 12.2, java, 65]被修改的是:97
    }
}
4、ArrayList集合案例
遍历删除元素:
import java.util.ArrayList;

public class text {
    public static void main(String[] args) {
        ArrayList price = new ArrayList<>();
        price.add(98);
        price.add(77);
        price.add(66);
        price.add(66);
        price.add(89);
        price.add(79);
        price.add(50);
        price.add(100);
        price.add(54);
        price.add(66);
        price.add(88);
        System.out.println(price);
        for (int i = 0; i < price.size(); i++) {
            if (price.get(i)<80){
                price.remove(i);
                i--;//防止元素自动补位出现bug
            }
        }
     

        System.out.println(price);
    }
}
存储自定义类型的对象:
public class Movie {
    private String name;
    private double score;
    private String actor;

    public Movie() {
    }

    public Movie(String name, double score, String actor) {
        this.name = name;
        this.score = score;
        this.actor = actor;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setScore(double score) {
        this.score = score;
    }

    public void setActor(String actor) {
        this.actor = actor;
    }

    public String getName() {
        return name;
    }

    public double getScore() {
        return score;
    }

    public String getActor() {
        return actor;
    }
}
import java.util.ArrayList;

public class test {
    public static void main(String[] args) {//栈内存加载main方法
        ArrayList Movies = new ArrayList<>();//在堆内存分配一个Movies集合空间,并将地址返回给栈内存的变量Movies
        Movie m1 = new Movie("《肖生客的救赎》", 9.7, "罗宾逊");//在堆内存创建对象并返回地址给栈内存的变量m1
        Movie m2 = new Movie("《霸王别姬》", 9.5, "张国荣");
        Movie m3 = new Movie("《阿甘正传》", 9.4, "汤姆");

        Movies.add(m1);//将m1中的地址存储到Movies集合,因此集合中存储的不是对象,而是堆内存中对象返回的地址
        Movies.add(m2);
        Movies.add(m3);
        for (int i = 0; i < Movies.size(); i++) {
            Movie m = Movies.get(i);
            System.out.println(m.getName() + m.getScore() + m.getActor());//通过Movies中定义的方法实现访问
        }

    }
}

元素搜索:
   public class Student {
   private String name;
   private String id;
   private int age;
   private String banji;

    public Student() {
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setId(String id) {
        this.id = id;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void setBanji(String banji) {
        this.banji = banji;
    }

    public String getName() {
        return name;
    }

    public String getId() {
        return id;
    }

    public int getAge() {
        return age;
    }

    public String getBanji() {
        return banji;
    }

    public Student(String name, String id, int age, String banji) {
        this.name = name;
        this.id = id;
        this.age = age;
        this.banji = banji;
    }
}
public class test {
    public static void main(String[] args) {//栈内存加载main方法
        ArrayList list = new ArrayList<>();
        Student s1 = new Student("叶孤城","20180302",23,"护理一班");
        Student s2 = new Student("东方不败","20180303",23,"推拿二班");
        Student s3 = new Student("西门吹雪","20180304",26,"中药学四班");
        Student s4 = new Student("梅超风","20180305",26,"神经科二班");
        list.add(s1);
        list.add(s2);
        list.add(s3);
        list.add(s4);
        Scanner sc = new Scanner(System.in);
        while (true){
            System.out.print("请输入学号:");
            String userid = sc.next();
            Student student1 = seach(list,userid);
            if(student1 == null){
                System.out.println("查无此人");
                break;
            }
            System.out.println("学号:"+student1.getId()+"t"+"姓名:"+student1.getName()+"t"+"年龄:"+student1.getAge()+"t"+"班级:"+student1.getBanji());
            break;
        }

    }
    public static Student seach(ArrayList list,String userid){
            for (int i = 0; i < list.size(); i++) {
                Student student1 = list.get(i);
                if(student1.getId().equals(userid)){
                      student1 = list.get(i);
                      return student1;
                }
            }
        return null;

    }
}
 

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号