Java基础入门课后习题及答案

代码一:5 -5

public class A {

}

public static void main(String[] args) { }

);

);

代码二:():15 (0):d

lastIndexOf(m):\ substring(2,4):fe indexOf(g):5

public class B { }

public static void main(String[] args) { }

String s = \ \ \

\ \ \

五、简答题

1、String和StringBuffer有什么区别

String类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer是可变字符串类,类似String的缓冲区,可以修改字符串的值。

2、Date和Calender类有什么区别和联系

Date类用来表示某个特定的瞬间,能够精确到毫秒。而在实际应用中,往往需要把一个日期中的年、月、日等信息单独返回进行显示或处理,这个类中的大部分方法都已被标记过时。Calender类基本取代了Date类,该类中定义了一系列用于完成日期和时间字段操作的方法。 Calendar的getTime()方法,getTime()返回一个表示Calendar时间值的Date对象,同时Calendar有一个setTime(Date date)方法,setTime()方法接收一个Date对象,将Date对象表示的时间值设置给Calendar对象,通过这两个方法就可以完成Date和Calendar对象之间的转换。

六、编程题

请按照题目的要求编写程序并给出运行结果

1、 编写一个程序,实现字符串大小写的转换并倒序输出,要求如下

1)使用for循环将字符串“HelloWorld”从最后一个字符开始遍历。

2)遍历的当前字符如果是大写字符,就使用toLowerCase()方法将其转换为小写字符,反之则使

用toUpperCase() 方法将其转换为大写字符

3)定义一个StringBuffer对象,调用append()方法依次添加遍历的字符,最后调用StringBuffer对象的toString()方法,并将得到的结果输出。

2、 计算从今天算起,100天以后是几月几号,并格式化成xxxx年x月x日的形式打印出来。

提示:

1)调用Calendar类的add()方法计算100天后的日期 2)调用Calendar的getTime() 方法返回Date类型对象

2)使用FULL格式的DateFormat对象,调用format() 方法格式化Date对象

3、利用Random类来产生5个20~50之间的随机整数。

提示:[n-m](n、m均为整数,n

第6章 集合类

一、填空题

1、JDK中提供了一系列可以存储任意对象的类,统称为 集合 。

2、在创建TreeSet对象时,可以传入自定义的比较器,自定义比较器需要实现 Comparator 接口。

3、Collection有两个子接口分别是List和Set,List集合的特点是 有序、可重复 ,Set集合的特点是 无序、不可重复 。

4、使用Iterator遍历集合时,首先需要调用 hashNext() 方法判断是否存在下一个元素,若存在下一个元素,则调用 next() 方法取出该元素。

5、集合按照存储结构的不同可分为单列集合和双列集合,单列集合的根接口是 Collection ,双列集合的根接口是 Map 。

6、Map集合中的元素都是成对出现的,并且都是以 键 、 值 的映射关系存在。

7、Iterator有一个子类,不仅可以对集合进行从前向后遍历,还可以从后向前遍历,该类是 ListIterator 。

8、List集合的主要实现类有 ArrayList 、 LinkedList ,Set集合的主要实现类有 HashSet 、 TreeSet Map集合的主要实现类有 HashMap 、 TreeMap 。

9、Map集合中存储元素需要调用 put() 方法,要想根据该集合的键获取对应的值需要调用 get() 方法。

10、包中提供了一个专门用来操作集合的工具类,这个类是 Collections ,还提供了一个专门用于操作数组的工具类,这个类是 Arrays 。

二、判断题

1、Set集合是通过键值对的方式来存储对象的。错

2、集合中不能存放基本数据类型,而只能存放引用数据类型。对

3、如果创建的TreeSet集合中没有传入比较器,则该集合中存入的元素需要实现Comparable接口。对

4、使用Iterator迭代集合元素时,可以调用集合对象的方法增删元素。错

5、LinkedList在内部维护了一个双向循环链表,每一个元素节点都包含前一个元素节点和后一个元素节点的引用。对

三、选择题

1、要想保存具有映射关系的数据,可以使用以下哪些集合(多选)BC A、ArrayList B、TreeMap C、HashMap D、TreeSet 2、Java语言中,集合类都位于哪个包中A A、 B、 C、 D、

3、使用Iterator时,判断是否存在下一个元素可以使用以下哪个方法D A、next() B、hash() C、hasPrevious() D、hasNext() 4、关于foreach循环的特点,以下说法哪些是正确的(多选)ABD A、foreach循环在遍历集合时,无需获得容器的长度

B、foreach循环在遍历集合时,无需循环条件,也无需迭代语句 C、foreach循环在遍历集合时非常繁琐

D、foreach循环的语法格式为:for(容器中元素类型 临时变量 :容器变量)。 5、在程序开发中,经常会使用以下哪个类来存储程序中所需的配置C A、HashMap B、TreeSet C、Properties D、TreeMap 6、使用Enumeration遍历集合时,需要使用以下哪些方法(多选)AB

A、hasMoreElements() B、nextElement() C、next() D、hashNext()

7、要想集合中保存的元素没有重复并且按照一定的顺序排列,可以使用以下哪个集合D A、LinkedList B、 ArrayList C、hashSet D、TreeSet

8、下列哪些说法是正确的(多选)AB

A、LinkedList集合在增删元素时效率较高 B、ArrayList集合在查询元素时效率较高

C、HashMap不允许出现一对null键null值 D、HashSet集合中元素可重复并且无序

9、以下哪些方法是LinkedList集合中定义的(多选) ABC

A、getLast() B、getFirst() C、remove (int index) D、next() 10、获取单列集合中元素的个数可以使用以下哪个方法B

A、length() B、size() C、get(int index) D、add(Object obj) 四、分析题

阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。如果不能编译通过,请说明原因。

代码一:程序可以编译通过,输出结果是“a、b、c”,因为TreeSet集合不允许存放重复元素,第2次增加的元素c会覆盖之前存入的元素c,所以输出结果是“a、b、c”,而不是“a、b、c、c”。

import .*;

public class Test01 {

public static void main(String[] args) { TreeSet ts = new TreeSet(); (\ (\ (\ (\ }

Iterator it = (); while()) {

}

}

代码二:程序不可以编译通过,这是由于向ArrayList集合中存入元素时,集合并不能记住元素的类型,因此在取出元素时,只能使用Object类型,而不能使用String类型。

import class Test02 { }

public static void main(String[] args) { }

ArrayList list = new ArrayList(); (\(\(\ }

for (String obj : list) {

代码三:程序可以编译通过,但是什么也没有打印。使用ListIterator进行从后向前的遍历集合,可以使用以下两种方法,一是使用listIterator(int index)方法将索引index的值设置为集合元素的数目,也就是ListIterator it = (3);,二是将程序先从前向后遍历,然后再从后向前遍历。

import .*;

public class Test03 { }

public static void main(String[] args) { }

ArrayList list = new ArrayList(); (\ (\ (\

ListIterator it = (); while()) { }

\

Object obj = ();

代码四:程序编译不通过,由于Map集合在遍历的过程中不能使用集合对象本身删除元素,这会导致

并发修改异常,若想删除集合中的元素,可以使用Iterator的remove()方法。

import .*;

import class Test04 {

public static void main(String[] args) {

Map map = new HashMap(); (1, \ (2, \ (3,\ Set keySet = (); Iterator it = (); while ()) {

Object key = ();

(key);

}

}

}

五、简答题

1、什么是集合,请列举集合中常用的类和接口

为了使程序能方便的存储和操作数目不固定的一组数据,JDK提供了一套类库,这些类都位 于包中,统称为集合。集合框架中包含3个接口,分别是List、Set、Map。 2、集合中的List、Set、Map有什么区别

List的特点是元素有序、元素可重复。List接口的主要实现类有ArrayList和LinkedList。Set的特点是元素无序、元素不可重复。Set接口的主要实现类有HashSet和TreeSet。Map的特点是存储的元素是键(Key)、值(Value)映射关系,元素都是成对出现的。Map接口的主要实现类有HashMap和TreeMap。

3、请说说Collection和Collections的有什么区别

Collection是一个单例集合接口。它提供了对集合对象进行基本操作的通用方法。Collections是一个工具类。它包含各种有关集合操作的方法。

六、编程题

请按照题目的要求编写程序并给出运行结果。

1、 使用ArrayList集合,对其添加10个不同的元素,并使用Iterator遍历该集合。

提示:

1)使用add()方法将元素添加到ArrayList集合中。

2)调用集合的iterator()方法获得Iterator对象,并调用Iterator的hasNext()和next()方

法,迭代出

集合中的所有元素。

2、 在HashSet集合中添加三个Person对象,把姓名相同的人当做同一个人,禁止重复添加。 提示:

1)Person类中定义name和age属性,重写hashCode()方法和equals()方法,针对Person类的

name属性进行比较,如果name相同,hashCode()方法的返回值相同,equals方法返回true。 3、选择合适的Map集合保存5位学员的学号和姓名,然后按学号的自然顺序的倒序将这些键值对一一打印出来。 提示:

1)创建TreeMap集合。 2)使用put()方法将学号(“1”、“2”、“3”、“4”、“5”)和姓名(“Lucy”、“John”、“Smith”、“Aimee”、“Amanda”)存储到Map中,存的时候可以打乱顺序观察排序后的效果。 3)使用 ()获取键的Set集合。

4)使用Set集合的iterator()方法获得Iterator对象用于迭代键。 5)使用Map集合的get()方法获取键所对应的值。

第7章 IO(输入输出)

一、填空题

1、Java中的IO流,按照传输数据不同,可分为__字节流__和__字符流__。 2、在Java中,__File__类用于操作磁盘中文件和目录,位于包中。 3、在Java中,_SequenceInputStream

__类用来把两个或更多的InputStream输入流对象合并为单个InputStream输入流对象

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4