数组和容器都是可以装东西的袋子。
相同:两者都可以装原始类型,对象。
比较:1、数组[ ]:袋子大小不能变,但是存,取速度快,有点像超市的储物柜。
而且赋值 a[1]=,a[2]= ,放东西比容器快多了。
The array is Java’s most efficient way to store and randomly access a sequence of object references,
数组:存储,拿出来用最快。
缺点:就是装东西之前,把袋子大小准备好,大小不能改。
2、容器:袋子大小可以变,但是存,取,花时间,有点像超市的哪些多个专柜台。
优点:就是根据东西多少,自动换成大袋子
缺点:当发现东西多了,增加大袋子,但是原来小袋子东西要全搬到大袋子里。
如:ArrayList。
能装什么:
1>对象
2>原始类型,autoboxing containers 自动装换成对象。
而且装东西只能依靠方法了。:
3、Generic 通用<>,规定容器里装的具体东西。
一、数组
第一:定义
1、int[] a1
2、int a1[]
第二、初始化
1、固定值:int[] a1={1,2,3,4,5.....}
2、给a1数组一个别名a2 :int a2=a1;
3、 对象:
3.1 固定值+对象实例 Interger[] a={new Interger(1),new Interger(2),3}
固定(类实例): Class[] types={Latte.class,Mocha.class};
3.2 1>固定对象实例,:Interger[] b=new Interger[]{new Interger{Interge(1),new Interger(2),3} };
2>:知道对象所有的具体值: new String[]{"fiddle","de","dum"} 3>:知道对象需要空间的大小:Interger a=new Interger[20];
第三、保存在堆中,arrays are always stored on the heap
二、容器存数据:
1、 List<BerylliumSphere> sphereList = new ArrayList<BerylliumSphere>();
sphereList.add(new BerylliumSphere()); sphereList.get(0)
2、List<Integer> intList = new ArrayList<Integer>(Arrays.asList(0, 1, 2,3, 4, 5));//也可以装原始类型。
三、往袋子里装东西(filling array/containers),这两个类里面几乎都是静态方法,提高效率,不用每次放东西时去初始化一个对象。
1、Arrays:
1.1 Arrays.fill():这方法没有什么用,对于原始类型,在袋子重复装同一数,一直到袋子装满为止。对于对象,在袋子重复装同一个地址。
boolean[] a1=new boolean[6]
Arrays.fill(a1,true)
结果:true 6个
对于原始类型
2、Collections:
2.1、 List<StringAddress> list = new ArrayList<StringAddress>(Collections.nCopies(4, new StringAddress("Hello")));
构造器:形势装东西,且定义容器大小(即选好大小袋子)
2.2、Collections.fill(list, new StringAddress("c"));:表示把原来袋子的东西扔掉,装新买的。
这个装东西的多少:list.size()确定(大小=4),大小不变,内容改成“c”。