\★里面有解题思路一样的没有全部解答,仅仅将题目列出,稍微改变即可得出结果★ \笔试题重点, \1、复制文件 \2、多线程 \3、集合 \4、反射
///////////////////////////////////////////////////////////////////// \/*
Collection集合体系图 Collection |----List 元素有序,可重复 |----ArrayList 底层数据结构是数组,查询快,增删慢,线程不安全,效率高 |----Vector 底层数据结构是数组,查询快,增删慢,线程★安全★,效率低 |----LinkedList 底层数据结构是链表,查询慢,增删快,线程不安全,效率高 |----Set 元素无序,唯一。 |----HashSet |----TreeSet
遍历集合的两种方式: 1、通过获取键的集合,遍历键的集合,通过键获取值 2、通过键值对集合,遍历键值对对象,分别取得键值 */
import java.util.HashMap; import java.util.Set;
import java.util.Map.Entry; import java.util.Map; class ForMap { public static void main(String[] args) { //创建一个map对象 HashMap
//向map中添加元素 map.put(\map.put(\map.put(\map.put(\//获取键的集合
Set
//通过键获取值 System.out.println(str+\}
System.out.println(\
//获取map的键值对集合
Set
for(Entry
//用键值对对象分别获取键和值 System.out.println(me.getKey()+\ } System.out.println(\ } }
//////////////////////////////////////////////////////////////////// \/*
题目1: 创建ArrayList对象,添加5个元素,使用Iterator遍历输出。*/
\/*题目2: 两个集合{“a”,“b”,“c”,“d”,“e”}和{“d”,“e”,“f”,“g”,“h”}, 把这两个集合去除重复项合并成一个 思路: 这道题主要是考察集合的知识的,可以用ArrayList解决问题 1、先创建这两个集合 2、向这两个集合分别添加元素 3、用第二个集合的调用iterator()方法获取Iterator对象 4、遍历第二个集合,并用第一个集合判断是否包含第一个 集合的元素,如果不包含就向集合一添加元素 5、打印集合1,就是想要的结果 */ //导包
import java.util.List;
import java.util.ArrayList; import java.util.Iterator;
class Test { public static void main(String args[]) { //创建集合1 List
list1.add(\list1.add(\list1.add(\list1.add(\list1.add(\
//创建集合2
List
//获取集合2的迭代器 Iterator it = list2.iterator(); //遍历集合2 while(it.hasNext()) { String str = (String) it.next(); //如果不包含就向集合1添加此元素 if(!list1.contains(str)) { list1.add(str); } } System.out.println(list1); } }
///////////////////////////////////////////////////////////////////// \/*
题目: 已知文件a.txt文件中的内容为“bcdeadferwplkou”,请编写程序读取该文件内容, 并按照自然排序顺序后输出到b.txt文件中。即b.txt文件内容应为\这样的顺序 思路: 1、先将a.txt文件内容读取出来并存到字符数组中 2、用Arrays.sort(字符数组) 将这个字符数组排序 3、将字符数组输出到b.txt文件中 */
import java.io.IOException; import java.io.File;
import java.io.BufferedReader; import java.io.BufferedWriter;
import java.io.FileReader; import java.io.FileWriter; import java.util.Arrays;
class ReadFileAndSortString { public static void main(String args[]) throws IOException { //封装数据源及目的地File File a = new File(\ File b = new File(\
//高效字符输入流得到数据源
BufferedReader br = new BufferedReader(new FileReader(a)); //高效字符输出流得到目的地
BufferedWriter bw = new BufferedWriter(new FileWriter(b)); String line =null; //循环读取文件
while((line = br.readLine())!=null) { //得到读取一行字符串的长度 int len = line.length(); char[] chrs = new char[len]; //转换成字符数组 chrs = line.toCharArray(); //通过Arrays的sort方法排序 Arrays.sort(chrs); }
System.out.println(\字符串:\//写到文件中 bw.write(chrs); bw.newLine(); //刷新缓冲区 bw.flush();
//关闭资源 br.close(); bw.close();
System.out.println(\复制成功\ } }
///////////////////////////////////////////////////////////////////// \/*
题目: 编写一个程序, 将指定目录下所有.java文件拷贝到另一个目录中, 并将扩展名改为.txt
思路: 1、用File对象封装目录 2、通过listFiles()方法获取该目录下所有的文件或者文件夹的File对象数组 3、遍历这个File数组,得到每一个File对象 4、判断该File对象是否是文件 a、如果是文件 b、继续判断是否以.java结尾 是:先改名后复制文件 否:不复制 */
//导包
import java.io.IOException; import java.io.File;
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; class Test { public static void main(String[] args) throws IOException { //用File对象封装目录 File srcfile = new File(\ //用File对象封装目录 File destFile = new File(\
//调用复制的方法 copyFile(srcfile,destFile); }
//复制方法
public static void copyFile(File srcFile, File destFile) throws IOException { //通过listFiles()方法获取该目录下所有的文件或者文件夹的File对象数组 File[] fileArray = srcFile.listFiles(); //遍历这个File数组,得到每一个File对象 for(File file : fileArray) { //判断该File对象是否是文件 if(file.isFile()) { //如果不是以java为后缀的不复制,执行下次循环 if(!file.getName().endsWith(\ { continue; }