Ⅰ.编程题
1、 从控制台输入若干个单词(输入回车结束)放入集合中,将这些单词排序后(忽略大小写)打印出来。
知识点:List接口的实现类、String常用方法
2、请使用LinkedList来模拟一个队列(先进先出的特性):
1) 拥有放入对象的方法void put(Object o)
2) 取出对象的方法Object get()
3) 判断队列当中是否为空的方法boolean isEmpty();并且,编写测试代码,验证你的队列是否正确。
知识点:List接口的实现类LinkedList常用方法
3、在一个列表中存储以下元素:apple,grape,banana,pear
1)返回集合中的最大的和最小的元素
2) 将集合进行排序,并将排序后的结果打印在控制台上
知识点:Collections类中的方法
4、利用集合完成象数据库那样存储数据,并且可以简单查询,利用map存储学生信息,字段如下: id ,name,age,实现步骤:
(1)创建类,类图如下:
(2)在main方法编写逻辑代码
(3)运行程序并测试结果
提示:用id做map集合的键部分,用student对象做map集合的值部分
效果显示:
知识点:Map接口的实现类、File管理、IO字符流、对象的序列化、String常用方法
5、在本机的磁盘系统中,找一个文件夹,利用File类的提供方法,列出该文件夹中的所有文件的文件名和文件的路径,执行效果如下:
路径是xxx的文件夹内的文件有:
文件名:abc.txt
路径名:c:\temp\abc.txt
--------------------------------------------
文件名:def.txt
路径名:c:\temp\def.txt
知识点:File管理
6、编写一个程序,从一个文本文件ex18_3.txt中读取字符,然后在控制台输出。
知识点:IO字符流
7、创建c:/test.txt文件并在其中输入"hello world"
创建一个输入流读取该文件中的文本
并且把小写的l变成大写L再利用输出流写入到d:\test.txt中
实现步骤:1.在本地硬盘C盘下创建一个文件test.txt
2.创建一个包含main()方法的类,并在main中编写代码
3.运行代码并且测试结果
实现过滤器的功能
效果显示:
知识点:IO字符流、String常用方法
Ⅱ.选做题
1、生成20个1到10之间的随机数存放在一个数组中,将数组元素依次取出,如果是奇数则将该数进栈,如果是偶数且栈不为空,在将栈顶元素出栈。如果栈为空,将该数忽略。最后,看栈中还有多少个数,并将这些数打印出来。
知识点:Math常用方法、集合类方法(LinkList)
2、从控制台输入若干个单词,每输入一个单词,便将该单词按词典顺序插入到一单词队列中,输入空回车结束,将这些单词按顺序打印出来。
知识点String常用方法、集合类方法(LinkList)
答案:
Ⅰ.编程题
1、 从控制台输入若干个单词(输入回车结束)放入集合中,将这些单词排序后(忽略大小写)打印出来。
publicclass Test {
publicstaticvoid main(String[] args) {
List<String> list = new ArrayList<String>();
Scanner in = new Scanner(System.in);
String s = in.nextLine();
String[] a = s.split(" ");
for(int i=0;i < a.length;i++){
for(int j =i+1;j<a.length;j++){
if(a[i].compareToIgnoreCase(a[j])>0){
s = a[i];
a[i]= a[j];
a[j] = s;
}
}
}
for(String o:a){
list.add(o);
System.out.println(o);
}
}
}
2、请使用LinkedList来模拟一个队列(先进先出的特性):
1) 拥有放入对象的方法void put(Object o)
2) 取出对象的方法Object get()
3) 判断队列当中是否为空的方法boolean isEmpty();并且,编写测试代码,验证你的队列是否正确。
publicclass Linkeds {
List l;
Linkeds(){
l=new LinkedList();
}
publicvoid put(Object o){
l.add(o);
}
public Object get(){
Object o= l.get(0);
l.remove(0);
return o;
}
publicboolean isEmpty(){
if(l.isEmpty()){
returntrue;
}
returnfalse;
}
}
3、在一个列表中存储以下元素:apple,grape,banana,pear
4) 返回集合中的最大的和最小的元素
5) 将集合进行排序,并将排序后的结果打印在控制台上
publicclass Test {
/**
*@paramargs
*/
publicstaticvoid main(String[] args) {
// TODO Auto-generated method stub
List<String> list =new ArrayList<String>();
list.add("apple");
list.add("grape");
list.add("banana");
list.add("pear");
Object[] s= list.toArray();
System.out.println("最小数是"+s[0]);
System.out.println("最大数是"+s[s.length-1]);
for(Object o:s){
System.out.println(o);
}
}
}
4、利用集合完成象数据库那样存储数据,并且可以简单查询,利用map存储学生信息,字段如下: id ,name,age,实现步骤:
(1)创建类,类图如下:
(2)在main方法编写逻辑代码
(3)运行程序并测试结果
提示:用id做map集合的键部分,用student对象做map集合的值部分
效果显示:
publicclass Student {
privateintid;
private String name;
privateintage;
Student(){
}
public Student(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
publicint getId() {
returnid;
}
publicvoid setId(int id) {
this.id = id;
}
public String getName() {
returnname;
}
publicvoid setName(String name) {
this.name = name;
}
publicint getAge() {
returnage;
}
publicvoid setAge(int age) {
this.age = age;
}
}
publicclass Database {
Student s;
static Map<Integer, Student> map;
Database(){
map =new HashMap<Integer, Student>();
}
public void select(){
System.out.print("输入要查询学生的学号:");
int i =Uitl.in.nextInt();
if(map.get(i)==null){
System.out.println("没有这个学生");
}else{
System.out.println("学号:"+map.get(i).getId()+"\t姓名:"+map.get(i).getName()+"\t年龄:"+map.get(i).getAge());
}
}
public void selectAll(){
System.out.println("学号:\t姓名:\t年龄:");
System.out.println("-------------------");
Set set = map.keySet();
for(Object n:set){
System.out.println("学号:"+map.get(n).getId()+"\t姓名:"+map.get(n).getName()+"\t年龄:"+map.get(n).getAge());
}
}
public void insert(){
s = new Student();
s.setId(getId());
System.out.println("请输入姓名:");
s.setName(Uitl.in.next());
System.out.println("请输入年龄:");
s.setAge(Uitl.in.nextInt());
map.put(s.getId(), s);
System.out.println("成功添加一条记录");
}
public void update(){
System.out.print("输入要修改学生的学号:");
int i =Uitl.in.nextInt();
if(map.get(i)==null){
System.out.println("没有这个学生");
}else{
System.out.println("请输入姓名:");
s.setName(Uitl.in.next());
System.out.println("请输入年龄:");
s.setAge(Uitl.in.nextInt());
System.out.println("学号:"+map.get(i).getId()+"\t姓名:"+map.get(i).getName()+"\t年龄:"+map.get(i).getAge());
System.out.println("成功修改一条记录");
}
}
public void delete(){
System.out.print("输入要删除学生的学号:");
int i =Uitl.in.nextInt();
if(map.get(i)==null){
System.out.println("没有这个学生");
}else{
map.remove(i);
System.out.println("成功删除一条记录");
}
}
publicint getId(){
Set set = map.keySet();
Object[] o= set.toArray();
if(o.length==0){
return 1;
}else{
Return o.length;
}
}
}
publicclass Uitl {
static Scanner in = new Scanner(System.in);
static Database data =new Database();
publicstaticvoid show1(){
while(true){
System.out.println("------------------");
System.out.println("1。插入表中值");
System.out.println("2。查询表中值");
System.out.println("3。修改表中值");
System.out.println("4。删除表中值");
System.out.println("其他退出");
int i = in.nextInt();
switch(i){
case 1:data.insert();
break;
case 2:select();
break;
case 3:data.update();
break;
case 4:data.delete();
break;
default:System.exit(0);
}
}
}
publicstaticvoid select(){
System.out.println("选择查询方式:1.单行查询 2查询全表");
int i = in.nextInt();
switch(i){
case 1:data.select();
break;
case 2:data.selectAll();
break;
default:System.exit(0);
}
}
}
publicclass Test {
publicstaticvoid main(String[] args) {
Uitl.show1();
}
}
5、在本机的磁盘系统中,找一个文件夹,利用File类的提供方法,列出该文件夹中的所有文件的文件名和文件的路径,执行效果如下:
-
路径名:c:\temp\def.txt
publicclass Test {
/**
*@paramargs
*/
publicstaticvoid main(String[] args) {
// TODO Auto-generated method stub
File f = new File("c:\\temp");
String[] s = f.list();
for(String o :s){
System.out.println("文件名"+o);
System.out.println("绝对路径"+f.getAbsolutePath()+"\\"+o);
System.out.println("=================================");
}
}
}
6、编写一个程序,从一个文本文件ex18_3.txt中读取字符,然后在控制台输出。
publicclass Test {
/**
*@paramargs
*/
publicstaticvoid main(String[] args) {
// TODO Auto-generated method stub
FileReader f;
try {
f = new FileReader("c:\\temp\\ex18_3.txt");
BufferedReader br = new BufferedReader(f);
System.out.println(br.readLine());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
7、创建c:/test.txt文件并在其中输入"hello world"
创建一个输入流读取该文件中的文本
并且把小写的l变成大写L再利用输出流写入到d:\test.txt中
实现步骤:1.在本地硬盘C盘下创建一个文件test.txt
2.创建一个包含main()方法的类,并在main中编写代码
3.运行代码并且测试结果
实现过滤器的功能
效果显示:
publicclass Test {
publicstaticvoid main(String[] args) {
FileReader f;
String s="";
BufferedReader br=null;
try {
f = new FileReader("c:\\test.txt");
br = new BufferedReader(f);
s = br.readLine();
System.out.println("源文件"+s);
s=s.replace("l", "L");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
BufferedWriter bw =null;
System.out.println(s);
try {
FileWriter fw = new FileWriter("d:\\test.txt");
bw = new BufferedWriter(fw);
bw.write(s);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Ⅱ.选做题
1、生成20个1到10之间的随机数存放在一个数组中,将数组元素依次取出,如果是奇数则将该数进栈,如果是偶数且栈不为空,在将栈顶元素出栈。如果栈为空,将该数忽略。最后,看栈中还有多少个数,并将这些数打印出来。
2、从控制台输入若干个单词,每输入一个单词,便将该单词按词典顺序插入到一单词队列中,输入空回车结束,将这些单词按顺序打印出来。