1. Set集合的特点
- 无序
- 不能重复的元素
2. Hash值的概念
- 概念:整数值
- 规律: 默认情况下,不同hashCode肯定是不同的对象,相同的hashCode同一个对象或不同对象
3. HashSet集合的特点
- 无序(没索引)
- 不能重复的元素
- hash表
4. LinkedHashSet集合的特点
- 不能重复的元素
- 能够按照存储的顺序读出数据
5. TreeSet集合的特点
- 不能重复的元素
- 能够按照自然顺序排序TreeSet()
- 能够按照我们指定方式排序TreeSet(Comparator c)
- 第一种方式:自定义类
1. 实现java.lang.Comparable<Student>
2. 重写compareTo(Student t)
3. 返回一个int >0 当前对象大 ==0相等 <0 小
- 第二种方式:通过匿名内部类传给TreeSet的构造函数
1. 实现java.util.Comparator
2. 重新compare(Student t1,Student t2)
3. 返回一个int >0 当前对象大 ==0相等 <0 小
6. 泛型的概念及好处
- 概念:参数化类型
- 类型检查,编译
- 不用类型转换
7. 泛型举例
[AppleScript] 纯文本查看 复制代码 - 泛型类
public class Generic<T> {
private T t;
public T getT() {
return t;
}
public void setT(T t) {
this.t = t;
}
}
- 泛型方法
public class Generic {
public <T> void show(T t) {
System.out.println(t);
}
}
- 泛型接口
- public interface Generic<T> {
void show(T t);
}
public class GenericImpl<T> implements Generic<T> {
@Override
public void show(T t) {
System.out.println(t);
}
}
- 类型通配符
//类型通配符:<?>
List<?> list1 = new ArrayList<Object>();
List<?> list2 = new ArrayList<Number>();
List<?> list3 = new ArrayList<Integer>();
System.out.println("--------");
//类型通配符上限:<? extends 类型>
// List<? extends Number> list4 = new ArrayList<Object>();
List<? extends Number> list5 = new ArrayList<Number>();
List<? extends Number> list6 = new ArrayList<Integer>();
System.out.println("--------");
//类型通配符下限:<? super 类型>
List<? super Number> list7 = new ArrayList<Object>();
List<? super Number> list8 = new ArrayList<Number>();
list8.add(new Integer(5));
1. 可变参数
- public void test(int ...i)
- for(int ii:i){}
2. 可变参数举例
- Aarrays.asList()
- List.of()
- Set.of()
1. map集合的概述和特点
- 健值对方式存储数据
- 一个键对应一个值
- 健不允许重复,值可以重复
- 无序
2. map集合常用方法
- 添加:put(key,value)
- 删除:remove(key)
- 清除:clear()
- 判断健是否存在:containsKey(key)
- 判断值是否存在:containsValue(value)
- 是否为空:isEmpty()
- 长度:size()
3. map结合读取数据方法
- 获取单个元素:get(key)
- 获取所有健:keySet()
- 获取所有的值:values()
- 获取健和值的集合:entrySet() Map.Entry<k,v>
4. Collections常用方法
- 排序:sort()
- 反转:reverse()
- 洗牌:shuffle()
1. File类的概述和构造方法
- 概念:文件和目录的抽象表示
- 构造方法
- new File("完整路径");
- new File("目录",“文件”);
- File file1=new File("目录") File file2=new File(file1,"文件");
2. File类创建类方法
- 创建文件:createNewFile();
- 目录:mkdir() ;
- 多级目录:mkdirs()
3. File类的判断和获取方法
- 判断是否是目录:isDirectory()
- 判断是否是文件:isFile()
- 判断文件或目录是否存在:exists()
- 名字:getName()
- 路径:getPath()
- 全路径:getAbsolutePath()
- 获取目录下文件名:list()
- 获取目录下文件:listFiles()
4. File类删除
- 删除文件:delete()删除目录时,目录必须为空
5. 不死神兔例子
- f(1)=1
- f(2)=1
- f(3)=f(2)+f(1)=1+1=2
- f(4)=f(3)+f(2)=2+1=3
- f(5)=f(4)+f(3)=2+1=3+2
6. 阶乘
- jc(1)=1
- jc(2)=2*jc(1)=2
- jc(3)=3*jc(2)=6
- jc(4)=4*jc(3)=24
- jc(5)=5*jc(4)=120
7. 流概述
- 概念:数据传输的总成
- 分类: 输入流 输出流
- 工作方式:字节流 字符流
8. 字节流写数据
- 字节输出流:OutPutStream() FileOutPutStream("文件的路径")
- 字节形式写数据:write() write(byte[]) write(byte[],off,len)
- 释放资源:close()
9. 字节流写数据的两个小问题
- 换行:/r/n
- 如何进行追加写:new FileOutPutStream("文件的路径",true)
- finally try catch后必须要执行的代码块,做关闭资源的操作
10. 字节流读取数据
- 字节输入流对象:InputStream() FileInputStream("")
- 读数据的方法:read() 当-1时代表文件到结尾 read(byte[])返回值实际读取数据的长度,-1代表数据读取完成
- 释放资源:close()
|