ArrayList: 有序的,但数组有限定的长度,list功能更强大,长度可变。
HashSet:无序,长度可变,装数据按照key-value规则,不重复,配合Iterator使用。
Iterator it =set.iterator();
while(it.hasNext()){
sysout(it.next());
}
HashMap:无序,长度可变,装数据按照key-value规则,key不重复
方法1:先获取所有key,然后根据key去map中取value
Set keySet = map.keySet();
for(String key:keySet){
Integer value = map.get(key);
System.out.println(key + “,” +value)
}
方法2:先获取所有Entry<String,Integer>
Set<Entry<String,Integer>> entrySet = map.entrySet();
for(Entry<String,Integer> ent:entrySet){
sysout(ent.getKey() + “,” + ent.getValue());
}
2,泛型
泛型就是用来代表一个类型名的参数,可以用于类,也可用于方法,如 public class SortUtil{…},在使用时为SortUtil sort = new SortUtil<>();
3,文件IO
创建文件夹:File file = new File(“d:/aaa/bbb/ccc”); file.mkdirs(); 判断是否为文件夹: file.isDirectory();
访问文件:File file = new File(“d:/aaa/bbb/ccc/d.jpg”); 判断是否为文件: file.isFile();
创建文件:file.createNewFile();
文件输入流:FileInputStream fis.read();//读一个字节,并将这个字节转成整数返回,文件末尾返回-1;
读取文本文件的封装工具:BufferedReader
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(“d:/aaa.txt”),“UTF-8”));
String line = br.readLine();//读一行,如果文件读完后还读,就返回null
4,抽象类
抽象类一般用来做父类,用abstract修饰符修饰,表示是抽象类,抽象类中可以有抽象方法(只有方法定义,没有方法体),子类必须继承抽象方法。
public abstract class AbstractPerson {
public String name;
public int age;
//abstract 声明这个方法是一个抽象方法
public abstract void say();
public void eat() {
System.out.println(“正在吃饭…”);
}
}
5,反射
主要用来构造一个类的对象,可以根据一个“类全名字符串”,获得代表这个类的class对象,然后根据这个class对象构造出这个类的真正实例对象
String classname = “com.doit.pojo.Person”;
Class<?> forName = Class.forName(classname);//forName代表Person.java这个类
Person o = (Person)forName.newInstance();//根据类全名构造类的实例,o代表Person的一个对象
//从forName这个class模板中获取到指定的方法