一、集合框架
1.List、Map、Set在存取元素时各有什么特点?
List、Set都是单列元素的集合,他们有一个共同的父接口Collection。
Set不允许有重复的元素。
存元素:add方法 有一个boolean的返回值,当集合中没有某个元素,此时add方法可成功加入该元素时,则返回true;当集合含有与某个元素equals相等的元素时,此时add方法无法加入该元素,返回结果为false。
取元素:没法说取第几个,只能以Iterator接口取得所有的元素,再逐一遍历各个元素。
List表示有先后顺序的集合,
存元素:多次调用add(Object)方法时,每次加入的对象按先来后到的顺序排序,也可以插队,即调用add(int index,Object)方法,就可以指定当前对象在集合中的存放位置。
取元素:
方法1:Iterator接口取得所有,逐一遍历各个元素
方法2:调用get(index i)来明确说明取第几个。
Map是双列的集合
存元素
用put方法:put(obj key,obj value),每次存储时,要存储一对key/value,不能存储重复的key,这个重复的规则也是按equals比较相等。
取元素:
用get(Object key)方法根据key获得相应的value。
也可以获得所有的key的集合,还可以获得所有的value的集合,
还可以获得key和value组合成的Map.Entry对象的集合。
List以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值。
2.Set里的元素是不能重复的,用什么方法区分重复与否?“==”还是“equals()”?两者有什么区别?
“==“”是用来判断两者是否是同一对象(同一事物),
而equals是用来判断是否引用同一个对象。
根据java的存储机制可知,set里面存放的是对象的引用,所以当两个元素只要满足了equals()时就已经指向同一个对象,也就出现了重复元素。所以应该用equals()来判断。
二、Math函数
Math.round(11.5) Math.round(-11.5)等于多少?
round()方法的作用是 将括号内的数+0.5后向下取值
比如round(2.1) 就是将2.1+0.5=2.6 后向下取值即为2
因此 Math.round(11.5)=12 Math.round(-11.5)=-11
三、递归算法
使用递归,求n的阶乘
public long getNFac(int n){
if(n<=1){
return 1;
}
return n*getNFac(n-1);
}
四、线程实现与同步
1.Java中有几种方法实现一个线程?
单线程实现方法
1.继承Thread类
Thread类本质上是实现了Runnable接口的一个实例。
通过start()方法启动线程,start()也是启动线程的唯一方法.
2.实现Runnable接口
如果自己的类已经继承一个类,就无法继承Thread类,此时就可以实现Runnable接口
2.用什么关键字修饰同步方法?
synchronized
它修饰的对象有以下几种:
1.修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象;
2. 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象;
3. 修改一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象;
4. 修改一个类,其作用的范围是synchronized后面括号括起来的部分,作用主的对象是这个类的所有对象。
本文介绍了Java集合框架中List、Set和Map的特点与使用方法,并详细解释了如何利用equals方法判断Set中元素的重复性,同时涵盖了Math函数的应用、递归算法实现阶乘以及Java线程的创建与同步。
2万+

被折叠的 条评论
为什么被折叠?



