大家好,今天小编关注到一个有意思的话题,就是关于java语言arraylist的问题,于是小编就整理了4个相关介绍Java语言arraylist的解答,让我们一起看看吧。
- javalinkedlist问题,怎么向linkedlist中add数组?
- Java ArrayList是基于数组实现的吗?有些数组可以存放基本类型,为什么List不可以?
- Java:ArrayList、LinkedList、Stack怎么回答比较全面?
JAVAlinkedlist问题,怎么向linkedlist中add数组?
LinkedList<int[]> list = new LinkedList<int[]>(); 创建一个LinkedList集合,元素类型是int[] 型数组;
list.add(arr); 添加一个名为arr的数组元素;
arr的属性及类型是根据泛型里面的内容定,可以是任意一类对象
j***a怎么获取list长度?
j***a list得到属猪长度的方法如下:
1 j***a中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性.
2 j***a中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法.
3.j***a中的size()方法是针对泛型***说的,如果想看这个泛型有多少个元素,就调用此方法来查看
J***a ArrayList是基于数组实现的吗?有些数组可以存放基本类型,为什么List不可以?
ArrayList相关的知识点也是j***a面试中最频繁出现的点,下面从源码的角度来分析下Arraylist!
1,ArrayList中的属性:ArrayList中的属性主要定义了一个对象数组(Object[]),大小(size),初始容量(DEFAULT_CAPACITY=10)等等,从属性中就可以知道ArrayList的底层就是一个数组,使用泛型E来存放构造器中传入的对象类型,当然ArrayList存放的并不是对象本身,而是对象的引用,所以ArrayList不能存放八个基本类型的数据;
2,ArrayList的主要方法:从下面截图可以看出,ArrayList中的主要方法就是元素的add(增),remove(删),set(改),get(查),而由这四大类方法自然衍生了获取大小,扩容,清空,包含等方法!
下面就主要方法进行分析:
1,add方法(add(i),addAll()等类似):
①,先判断加入元素后的数组大小,如果是小于初始容量则返回初始容量,否则返回+1后的容量值; ②,容量加1,同时跟未加入元素时的数组length比较,如果大于length,则使用grow方法进行扩容;
③, int newCapacity = oldCapacity + (oldCapacity >> 1); >>右移符号,相当于除二,即新容量为老容量的(1+0.5=1.5)倍,再进行判断是否新容量已经超限(Integer.MAX_VALUE - 8),如果超限,则置为最大容量,否则使用Arrays.copyOf复制得到新数组;
2,remove方法(remove其他方法类似):
②,获取到相应下标的元素;
J***a:ArrayList、LinkedList、Stack怎么回答比较全面?
你好,面试官问你这个问题的主要目的是为了了解你对基础数据结构的掌握,包含它们的优点和缺点。比如数组的优点是插入和删除比较慢,但是查询会比较快一点。链表跟数组就完全相反。
如果你能在面试过程中将这些基础的数据结构都讲解清楚,并结合实际的应用案列说明使用场景,那么就可以证明你这边对基础数据结构掌握是不错的。
如果你能结合J***a的源代码,再试着讲一讲J***a是怎么设计这些基础的数据结构的和算法,说一说一些动态扩容相关的知识,比如当咱们new ArrayList的时候内部使用数组存储对象的,那么默认创建的数组大小是多少;再比如扩容因子默认设置是多少,在哪些时机会触发扩容等等。这绝对是可以加分的点。
希望能够帮助到你。
List以及arrayList,linkedlist,stack的区别
首先List是接口,而后面四个是它的实现类
1.arrayList是一个数组,查询效率快,但是插入删除效率低,这是由于数组的特性决定的
2.linkedlist双链表,查询效率低,但是插入删除效率高,这是由于链表的特性决定的
3.stack继承vector,有着先进后出的特性
知道他们分别是什么了,区别也就很明了了,所以使用的时候需要根据不同场景去选择
例如需要频繁插入删除的可以用linkedList,而需要频繁查询的可以用arrayList
而当你面对面试官总问你怎么倒叙输出一段话的时候 如: 如何将hello world!倒叙输出成! world hello的时候 你可以选择用stack
到此,以上就是小编对于j***a语言arraylist的问题就介绍到这了,希望介绍关于j***a语言arraylist的4点解答对大家有用。