5_集合ArrayList 总结

1.对象数组和集合类简介:

 数组特点:

   数组存储的是同一数据类型的数据,并且其长度是固定的组合

  ArrayList集合特点:

  优点:遍历快,缺点:插入和删除慢

   a.只能存储引用数据类型,不能存储基本数据类型

      -要想储存基本数数据类型,就要使用基本数据类型的包装类:

      -38种基本数据类型以及它的包装类:

      整型: byte       Byte

                   short      Short

                     int        Integer

                   long      Long

      浮点型: float      Float

                   double   Double

      字符型: char       Character

      布尔型: boolean  Boolean

 

创建对象示例:

ArrayList<E>list = new ArrayList<E>();

ArrayList<Integer>list = new ArrayList<Integer>();

 

    b.Arraylist集合是一种存储同一数据类型,长度不固定,可方便进行删除,增加,修改的集合

    c.ArrayList集合是有索引,有序,可以存储重复元素(这一点,在boolean add(E e)方法的源代码里面,总是返回true)

 

 

1.1对象数组的练习

   存储对象数据类型,存储的是对象对应的地址;

创建对象数组案例:

  Student stuArr[] = new Student[3];

 

案例:创建一个学生对象的数组,存储三个学生对象

 

步骤:

 A:定义学生类
 B:创建学生数组
 C:创建学生对象
 D:存储学生对象到数组中

 

packagecom.itheima.collection1;

publicclass Student {
 private String name;
 private int age;
 
 public Student(String name, int age) {
  this.name = name;
  this.age = age;
 }
 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;
 }
 //遍历打印学生数组:
 public void print()
 {
  System.out.println("姓名:"+name+"\r"+"年龄:"+age);
  System.out.println("--------");
 }
 
 public static void main(String[] args) {
     //创建学生数组:
  Student[] students = new Student[3];
  
  //创建并初始化学生对象
  Student s1 = new Student("刘备",55);
  Student s2 = new Student("曹操",48);
  Student s3 = new Student("孙权",31);
  
  students[0] = s1;
  students[1] = s2;
  students[2] = s3;
  
  for(int i = 0;i < students.length;i++)
  {
   students[i].print();
  }
 }
 
}

1.2 对象数组的内存图

 

newStudent(): 放在堆里面

Students:放在栈里面存储了一个指向堆里面new Student() 的地址 001

 

1.3 List集合类的出现

  

   我们要的是面向对象编程语言,而面向对象编程语言对事物的描述都是通过对象来体现的。为了方便对多个对象进行操作,我们就必须对多个对象进行存储,而要想对多个对象进行存储;就不能是一个基本的变量,而应该是一个容器类型的变量;

到目前为止,我们学习过了哪些容器类型的数据呢:StringBuilder, 数组;
StringBuilder的结果只能是一个字符串类型,不一定满足我们的需求;
目前我们只能选择数组。但是数组又是一个删除困难,固定长度的容器,并不方便进行对象的增删改查
ArrayList集合很好解决了这些问题

 

 

1.4 List集合方法:

 

长度:

   int size();

获取:

   E get(int index);

增加:

   boolean add(E);

   void add(int index,E e)

删除:

    boolean remove(E);

    Eremove(int index):按照索引移除元素

修改:

   E set(int index,E newElemnet );参数是目标元素的位置,和代替的新元素。返回的是被修改的元素

判断:

   boolean contain(E e):是否包含E元素

    booleanisEmpty();集合是否为空

清空:

   void clear() 清空元素

另外一些有用的方法:

   E[] toArray():将集合内的元素返回对应数据类型的数组

   int indexOf(E e) 元素第一次出现的索引

   int lastIndexOf(E e) 最后一次出现e的索引值

   boolean addAll(Collection c):将一个集合中的所有元素添加到该集合的尾部


 

 

案例2:列表的增删改查

 publicstatic void main(String[] args) {
 //添加
  ArrayList<String> list = new ArrayList<>();
  list.add("Hello");
  list.add(",");
  list.add("My");
  list.add("name");
  list.add("Zeng");
  list.add("Yaofeng");
 System.out.println("添加元素:"+list.toString());
 //获取
  String str = list.get(2);
 System.out.println("获取得到的元素:"+str);
 //删除
 String strRemoved = list.remove(3);
 System.out.println("被删除的元素:"+strRemoved);
 //修改
  String strSetted = list.set(4, "Simons");
 System.out.println("被修改的元素是:"+strSetted);
 //长度
 System.out.println("元素长度:"+list.size());
 
 //遍历:
   //方法一: for遍历
 System.out.println("for遍历:");
 for(int x = 0; x < list.size(); x++)
 {
  String s = list.get(x);//标准方法获取元素
  System.out.println(s);
 }
 System.out.println("---------------");
 System.out.println("foreach遍历:");

// foreach()遍历
 for(String listItem : list)
 {
  System.out.println(listItem);
 }
 }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值