一些常见的Java和Android面试题
程序员文章站
2022-06-09 20:04:06
...
2016.10.06
Vector与ArrayList的区别
Vector与ArrayList都是List接口的实现类,它们都代表链表形式的数据结构。
它们两者的使用比较类似,一般通过add()方法来加元素;remove()方法删除元素,size()得到集合元素的数量等。
import java.util.ArrayList;
import java.util.Vector;
public class ListText {
public static void main(String[] args) {
Vector<String> v = new Vector<String>();//创建Vector对象
v.add("hello");//加入元素
v.remove("hello");//删除元素
System.out.println(v.size());//得到vector的元素数量
ArrayList<String> al = new ArrayList<String>();//创建一个ArrayList对象
al.add("hello");//加入元素
al.remove("hello");//删除元素
System.out.println(al.size());//得到链表对象中的元素数量
}
}
输出结果为:
0
0
答案:Vector是线程安全的,因为他操作元素的方法都是同步方法,而ArrayList则不是。开发过程中应该根据需要进行选择,如果要保证线程安全的地方则需要使用Vector,而不必要的时候则无需使用Vector,因为ArrayList效率会高一些。
HashMap和HashTable的区别
对于Map接口来说,它有两种比较重要的实现类HashMap和HashTable,它们保存元素的时候,都是无序的,但是也有一定的区别。
import java.util.HashMap;
import java.util.Map;
public class MapText {
public static void main(String[] args){
Map<String,String> map= new HashMap<String,String>();//创建Map对象
map.put("a", "123");//存放元素
map.put("b", "456");
map.put("c", "789");
for(String key:map.keySet()){//通过key的集合进行遍历
System.out.println(key+":"+map.get(key));//用get方法取得value
}
}
}
HashMap和HashTable的区别主要有以下几个方面。
1.HashTable的方法是同步的,HashMap不能同步。
2.HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。
3.HashTable有一个contains()方法,功能和Contains Value()功能一样。
4.HashTable使用Enumeration,HashMap使用Iterator.
5.hashTable中hash数组的初始化大小及其增长方式不同。
6.哈希值的使用不同,HashTable直接使用对象的hashCode,而HashMap会重新计算hash值。
推荐阅读
-
关于ajax对象一些常用属性、事件和方法大小写比较常见的问题总结
-
我经历的一些Android面试题及答案
-
Android studio Kotlin中配置GRPC和protobuf时出现的一些问题总结
-
关于单链表的一些面试题--Java数据结构
-
详解java面试题中的i++和++i
-
发一些Java面试题,上海尚学堂Java学员面试遇到的真题,值得学习
-
Android面试题:Java垃圾回收机制和finalize()
-
Android中java.math.Math类常用的常量和方法
-
Java和Android中,代码块、static静态代码块的执行顺序
-
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法