容器类&IO

Ⅰ.编程题

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、从控制台输入若干个单词,每输入一个单词,便将该单词按词典顺序插入到一单词队列中,输入空回车结束,将这些单词按顺序打印出来。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值