导航:首页 > 编程语言 > java数组list区别

java数组list区别

发布时间:2021-02-27 14:22:17

java语言中集合与数组的区别是什么

对JAVA的集合的理解是相对于数组,区别:
1)数组是大小固定的,并且同一个内数组只能存放类型一样容的数据(基本类型/引用类型)
2)JAVA集合可以存储和操作数目不固定的一组数据。
3)JAVA集合只能存放引用类型的的数据,不能存放基本数据类型;数组可以。
(注意基本类型int,double等等,但是Integer,Double等是类类型了)
附加:
所有的JAVA集合都位于 java.util包中!
JAVA集合主要分为三种类型:
Set(集)
List(列表)
Map(映射)

㈡ 各位Java中数组(Array)和列表(ArrayList)有什么区别

Array可以包含基本类型和对象类型,ArrayList只能包含对象类型。
Array大小是固定的,ArrayList的大小是动态变化的。
ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等。
对于基本类型数据,集合使用自动装箱来减少编码工作量。但是,当处理固定大小的基本数据类型的时候,这种方式相对比较慢,这时使用Array就会比较有效率。可以在教程网站秒秒学上看看,上面Java课程讲解得挺好的。

㈢ java中arraylist和list的区别

List是一个接口,而是一个类。

ListArray继承并实现了List。
所以List不能被构造,但可以向上面那样为List创建一个引用,而ListArray就可以被构造。

1
2

List list; //正确 list=null;
List list=new List(); // 是错误的用法

List list = new ArrayList();这句创建了一个ArrayList的对象后把上溯到了List。此时它是一个List对象了,有些ArrayList有但是List没有的属性和方法,它就不能再用了。
而ArrayList list=new ArrayList();创建一对象则保留了ArrayList的所有属性。
这是一个例子:

1
2
3
4
5
6
7
8
9

import java.util.*;
public class TestList{
public static void main(String[] args){
List list = new ArrayList();
ArrayList arrayList = new ArrayList();
list.trimToSize(); //错误,没有该方法。
arrayList.trimToSize(); //ArrayList里有该方法。
}
}

编译一下就知道结果了。
如果这个样子:
List a=new ArrayList();
则a拥有List与ArrayList的所有属性和方法,不会减少
如果List与ArrayList中有相同的属性(如int i),有相同的方法(如void f()),
则a.i是调用了List中的i
a.f()是调用了ArrayList中的f();
---------------------------------------------------------------
问题的关键:
为什么要用 List list = new ArrayList() ,而不用 ArrayList alist = new ArrayList()呢?
问题就在于List有多个实现类,现在你用的是ArrayList,也许哪一天你需要换成其它的实现类,如 LinkedList或者Vector等等,这时你只要改变这一行就行了:
List list = new LinkedList(); 其它使用了list地方的代码根本不需要改动。
假设你开始用 ArrayList alist = new ArrayList(), 这下你有的改了,特别是如果你使用了 ArrayList特有的方法和属性。

地区用 List arr = new ArrayList();定义;行业用 ArrayListarr = new ArrayList();定义;则说明,行业里用到了ArrayList的特殊的方法.
另外的例子就是,在类的方法中,如下声明:
private void doMyAction(List list){}
这样这个方法能处理所有实现了List接口的类,一定程度上实现了泛型函数.

如果开发的时候觉得ArrayList,HashMap的性能不能满足你的需要,可以通过实现List,Map(或者Collection)来定制你的自定义类.

㈣ Java中List和ArrayList的区别

java中List和ArrayList的区别如下:来
List是接口,源List特性就是有序,会确保以一定的顺序保存元素.
ArrayList是它的实现类,是一个用数组实现的List。
使用方法:
比如:List list = new ArrayList();
这样做的原因是list就相当于是一个泛型的实现,如果想改变list的类型,只需要:
List list = new LinkedList();//LinkedList也是List的实现类,也是ArrayList的兄弟类

㈤ 区别:java,list,arraylist

List:是一个有序的集合,可以包含重复的元素。提供了按索引访问的方式。它继承 Collection。
List有两个重要的实现类:ArrayList 和 LinkedList
ArrayList:我们可以将其看作是能够自动增长容量的数组。
利用ArrayList的toArray()返回一个数组。
Arrays.asList()返回一个列表。
1.ArrayList底层采用数组实现,当使用不带参数的构造方法生成ArrayList对象时,实际上会在底层生成一个长度为10的Object类型数组
2.如果增加的元素个数超过了10个,那么ArrayList底层会新生成一个数组,长度为原数组的1.5倍+1,然后将原数组的内容复制到新数组当中,并且后续增加的内容都会放到新数组当中。当新数组无法容纳增加的元素时,重复该过程。
3.对于ArrayList元素的删除操作,需要将被删除元素的后续元素向前移动,代价比较高。
4.集合当中只能放置对象的引用,无法放置原生数据类型,我们需要使用原生数据类型的包装类才能加入到集合当中。
5.集合当中放置的都是Object类型,因此取出来的也是Object类型,那么必须要使用强制类型转换将其转换为真正的类型(放置进去的类型)

㈥ Java中数组和集合有什么关系和区别

数组是JAVA语言内置的数据类型,它是一个线性的序列,所以它可以快速的访问其他的元素。但是速度是要有代价的,当你创建了一个数组之后,它的容量就固定了,而且在其生命周期里是不能改变的。还有一点,JAVA里面的数组是会做边界检查的,所以当你越界访问时,会抛出RuntimeException,所以不用担心在C或C++因为不做边界检查而出现的问题了,当然边界检查是以牺牲效率为代价的。数组与其它容器类的区别体现在三个方面:效率、类型识别和可以持有primitives。
JAVA里面提供的其他容器还包括List,Set和Map。他们处理对象的时候就好像这些这些对象都没有自己的类型一样,容器将它所含的元素都看成是JAVA中所有类的根类Object类型的,这样我们只需创建一种容器,就能把所有的类型的对象全部放进去。但是当取出的时候,那就需要我们自己进行类型转换了,不过在JAVA Tiger版里面新引入了“泛型”的概念,结合容器类一起使用就可以解决类型转换的问题,关于“泛型”这就不详细讲解了。从上面的角度来看,这种做法很不错,但是就是苦了primitives,如果是常量的话,可以把primitive转换成wrapper类然后放进容器里面,如果是变量的话,那就只能放在你自己的类里了。与其他容器类相比,数组会在编译的时候作类型检查,从而防止你插入错误类型的对象,或者在提取对象的时候把对象的类型给搞错了,JAVA在编译和运行的时候都能阻止你将一个不恰当的消息传给对象。至于效率,数组无疑是要高于其他容器类的,因为有些容器类的实现就是基于数组的,比如ArrayList。不论从类型检查还是效率的角度来考虑,我们首选数组来作为容器都是没错的,但是数组的缺点就是功能太弱了,所以才会有容器类的出现。
要多说几句的就是,java.util包里面有一个Arrays类,它包括了一组可以用于数组的static的工具方法,其中最基本的是四个方法:用来比较两个数组是否相等的equals();用来填充数组的fill();用来对数组进行排序的sort();以及用于在一个已经排序的数组中查找元素的binarySearch()。所有这些方法都对primitives和Object进行了重载。此外还有一个asList()方法,它接受一个数组,然后把它转成一个List容器。JAVA标准类库还提供了一个System.array()的静态方法,它能以较快的速度拷贝数组,对primitive和Object都进行了重载,但是注意当对Object数组进行拷贝时,进行的是浅拷贝(shallow )。

㈦ java里的数组和集合的区别是什么

数组是JAVA语言内置的数据类型,它是一个线性的序列,所以它可以快速的访问其他的元素。但是速度是要有代价的,当你创建了一个数组之后,它的容量就固定了,而且在其生命周期里是不能改变的。还有一点,JAVA里面的数组是会做边界检查的,所以当你越界访问时,会抛出RuntimeException,所以不用担心在C或C++因为不做边界检查而出现的问题了,当然边界检查是以牺牲效率为代价的。数组与其它容器类的区别体现在三个方面:效率、类型识别和可以持有primitives。
JAVA里面提供的其他容器还包括List,Set和Map。他们处理对象的时候就好像这些这些对象都没有自己的类型一样,容器将它所含的元素都看成是JAVA中所有类的根类Object类型的,这样我们只需创建一种容器,就能把所有的类型的对象全部放进去。但是当取出的时候,那就需要我们自己进行类型转换了,不过在JAVA Tiger版里面新引入了“泛型”的概念,结合容器类一起使用就可以解决类型转换的问题,关于“泛型”这就不详细讲解了。从上面的角度来看,这种做法很不错,但是就是苦了primitives,如果是常量的话,可以把primitive转换成wrapper类然后放进容器里面,如果是变量的话,那就只能放在你自己的类里了。与其他容器类相比,数组会在编译的时候作类型检查,从而防止你插入错误类型的对象,或者在提取对象的时候把对象的类型给搞错了,JAVA在编译和运行的时候都能阻止你将一个不恰当的消息传给对象。至于效率,数组无疑是要高于其他容器类的,因为有些容器类的实现就是基于数组的,比如ArrayList。不论从类型检查还是效率的角度来考虑,我们首选数组来作为容器都是没错的,但是数组的缺点就是功能太弱了,所以才会有容器类的出现。
要多说几句的就是,java.util包里面有一个Arrays类,它包括了一组可以用于数组的static的工具方法,其中最基本的是四个方法:用来比较两个数组是否相等的equals();用来填充数组的fill();用来对数组进行排序的sort();以及用于在一个已经排序的数组中查找元素的binarySearch()。所有这些方法都对primitives和Object进行了重载。此外还有一个asList()方法,它接受一个数组,然后把它转成一个List容器。JAVA标准类库还提供了一个System.array()的静态方法,它能以较快的速度拷贝数组,对primitive和Object都进行了重载,但是注意当对Object数组进行拷贝时,进行的是浅拷贝(shallow )。

㈧ java arraylist和数组的区别

List: 有顺序的,元素可以重复
遍历:for 迭代
排序:Comparable Comparator Collections.sort()
ArrayList:底层用数组实现的List
特点:查询效率高,增删效回率低 轻量级 线程不答安全
遍历:
ArrayList<String> al=new ArrayList();
al.add("winsun"); al.add("weixin"); al.add("mybole");
for(int i=0;i<al.size();i++)
{
System.out.println(al.get(i));
}//for遍历
Iterator it=al.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}//迭代器遍历
LinkedList:底层用双向循环链表 实现的List
特点:查询效率低,增删效率高
Vector: 底层用数组实现List接口的另一个类
特点:重量级,占据更多的系统开销 线程安全

㈨ java中队列,数组和list集合的区别

具体的来讲
数组保存的是类型,几何保存的是对象
如我的2个封装类Person,Animal:
用数组保存时应该这样:
Person[]p=newPerson[100];
Animal[]a=newAnimal[100];
我们能明确的知道我们保存的是是什么,不同的类要分开保存,并且在保存前就要知道我要保存的数量
用集合类来保存的话是这样:
Personperson=newPerson();
Animalanimal=newAnimal();
ArrayListlist=newArrayList();。//我这里用的是集合类ArrayList,你也可以用其他的
list.add(person);
list.add(animal);
我可以把两个类都保存在一个集合类list里,也就是说我保存的是个Object
取的时候也一样
数组直接取接可以了
集合类要进行转化,如(接着上面的例子):
Personper=p[0];
Animalani=a[0];
Personpers=(Person)list.get(0);//要强制转化
Animalanim=(Animal)list.get(1);

这是在博客上看到程序猿网友分享的,希望可以给你带来帮助

㈩ java list和arraylist的区别

上课没认真听吧!!ArrayList 是List的实现类。
List:是一个有序的集合,可以包含重复的元素。提供了按索引访问的方式。它继承 Collection。
List有两个重要的实现类:ArrayList 和 LinkedList
ArrayList:我们可以将其看作是能够自动增长容量的数组。
利用ArrayList的toArray()返回一个数组。
Arrays.asList()返回一个列表。
1.ArrayList底层采用数组实现,当使用不带参数的构造方法生成ArrayList对象时,实际上会在底层生成一个长度为10的Object类型数组
2.如果增加的元素个数超过了10个,那么ArrayList底层会新生成一个数组,长度为原数组的1.5倍+1,然后将原数组的内容复制到新数组当中,并且后续增加的内容都会放到新数组当中。当新数组无法容纳增加的元素时,重复该过程。
3.对于ArrayList元素的删除操作,需要将被删除元素的后续元素向前移动,代价比较高。
4.集合当中只能放置对象的引用,无法放置原生数据类型,我们需要使用原生数据类型的包装类才能加入到集合当中。
5.集合当中放置的都是Object类型,因此取出来的也是Object类型,那么必须要使用强制类型转换将其转换为真正的类型(放置进去的类型)。

阅读全文

与java数组list区别相关的资料

热点内容
手绘图表制作文件用什么软件 浏览:590
安卓最好3d播放器 浏览:273
飞言情小说官网入口 浏览:160
文件目录包含文件内部标识是什么 浏览:74
网络能传输字符吗 浏览:187
whatisdancingdj版本 浏览:982
苹果6电量是多少mah 浏览:203
微信收款都需要什么编程软件 浏览:631
有一部小说里面有个叫雄三 浏览:430
数据库刷新命令 浏览:24
自己创建个网站需要花多少钱 浏览:688
烟花易冷文件夹名称 浏览:346
卡巴斯基2014激活工具 浏览:817
固态硬盘不支持win10系统 浏览:419
linux如何进入文件行首行尾 浏览:742
苹果7只有苹果7Plus吗 浏览:398
win10屏保不起作用 浏览:524
数据库列定义是什么意思 浏览:146
文件币软件 浏览:61
创意编程用到了哪些知识 浏览:303

友情链接