Java中 Array、Arrays与ArrayList类

Java中 Array、Arrays与ArrayList类

一、Array类

public final class Array extends Object
Array 类提供了动态创建和访问 Java 数组的方法。

数组一旦确定,长度不可改变
数组与其他容器之间的区别在三个方面

  1. 效率
  2. 类型
  3. 保存基本类型的能力
    在Java中,数组是一种效率最高的存储和随机访问对象引用序列的方式。
    数组就是一个简单的线性序列,这使得元素访问十分快速。但是为这种速度付出的代价就是数组对象的大小被固定。并且在生命周期类不可改变。

Array 允许在执行 get 或 set 操作期间进行扩展转换;
但如果发生收缩转换,则抛出 IllegalArgumentException。

private static void useArray() {
        Person[] people = new Person[3];

        people[0] = new Person(15, "Bob");
        people[1] = new Person(18, "Peter");
        people[2] = new Person(20, "Tom");

        for(int i =0 ; i< people.length ;i++){
            System.out.println(people[i]);
        }
        //output*
        // Person{age=15, name='Bob'}
        // Person{age=18, name='Peter'}
        // Person{age=20, name='Tom'}
    }

二、ArrayList类

public class ArrayList extends AbstractList
implements List, RandomAccess, Cloneable, SerializableList

简单来看,ArrayList可以视作“可以自动扩充自身尺寸的数组”。

Arraylist的使用:创建一个实例,用add()插入对象;用get()访问这些对象,还能够通过size() 知道有多少个元素添加了进来

ArrayList,可以不断的将新的实例化对象放入ArrayList中,从而实现更多空间的自动分配。尽管通常应该使用ArrayLis而不是使用数组,但是这种弹性确实需要额外的开销,因此,通常ArrayList的效率要比 Array类低。

private static void useArrayList() {
        Person bob = new Person(15, "Bob");
        Person peter = new Person(18, "Peter");
        Person tom = new Person(20, "Tom");

        ArrayList<Person> people = new ArrayList<>();

        people.add(bob);
        people.add(peter);
        people.add(tom);

        System.out.println(people.get(1));
        //output* Person{age=18, name='Peter'}

        for(int i = 0 ; i<people.size() ; i++){
            System.out.println( people.get(i) ) ;
        }
        //output*
        // Person{age=15, name='Bob'}
        // Person{age=18, name='Peter'}
        // Person{age=20, name='Tom'}
    }

三、Arrays类

public class Arrays extends Object
此类包含用来操作数组(比如排序和搜索)的各种方法。

此类还包含一个允许将数组作为列表来查看的静态工厂。

除非特别注明,否则如果指定数组引用为 null,则此类中的方法都会抛出 NullPointerException。

此类中所含方法的文档都包括对实现 的简短描述。应该将这些描述视为实现注意事项,而不应将它们视为规范 的一部分。实现者应该可以随意替代其他算法,只要遵循规范本身即可。
(例如,sort(Object[]) 使用的算法不必是一个合并排序算法,但它必须是稳定的。)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值