黑马程序员——java基础之易忘点总结(四)

来源:互联网 发布:淘宝为什么下载不了 编辑:程序博客网 时间:2024/04/30 23:51

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

Map

    |--Hashtable:不可以存入null键null值。该集合是线程同步的。jdk1.0.效率低。

    |--HashMap:允许使用 null 值和 null 键,该集合是不同步的。将hashtable替代

    |--TreeMap:线程不同步。可以用于给map集合中的键进行排序。

 

Map和Set很像!

 

Map集合的put方法会返回被覆盖的值,如果放入的值没有会返回null;

Remove方法会返回删除的键。

对象.values()获取map集合所有键的值

 

map集合的两种取出方式:

1,Set<k> keySet:将map中所有的键存入到Set集合。因为set具备迭代器。

    可以用迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。

 

2,Set<Map.Entry<k,v>>entrySet:将map集合中的映射关系存入到了set集合中,

              而这个关系的数据类型就是:Map.Entry

              Entry其实就是Map中的一个static内部接口。

 

接口无构造方法!

 

Map --- entrySet或keySet --->Set

 

Collection----Collections.toArray --->Array

 

Array ---- Arrays.asList --->List 将数组变成集合,不可以使用集合的增删方法。因为数组的长度是固定。

如果数组中的元素都是对象。那么变成集合时,数组中的元素就直接转成集合中的元素。

如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在。

 

Arrays和Collections等工具类,里面定义的都是静态方法!

 

Collections.reverseOrder(比较器 );强行逆转比较器

Collections.shuffle(集合):将集合中的元素进行随机洗牌!

Collections.replaceAll(list,"aaa","pp");把list集合中的aaa全部替换成pp

Collections.reverse(集合):将集合元素反转;

Collections.fill(list,"pp");使用指定元素替换指定列表中的所有元素。

 

1,指定类型的数组到底要定义多长呢?

当指定类型的数组长度小于了集合的size,那么该方法内部会创建一个新的数组。长度为集合的size。

当指定类型的数组长度大于了集合的size,就不会新创建了数组。而是使用传递进来的数组。所以创建一个刚刚好的数组最优。

2,为什么要将集合变数组?

为了限定对元素的操作。不需要进行增删了。

 

show(String str,int... arr)

方法的可变参数。注意:可变参数一定要定义在参数列表最后面。

 

Calendar c = Calendar.getInstance();

 

System.currentTimeMillis();返回以毫秒为单位的当前时间long型

 

SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日Ehh:mm:ss");

sdf.format(new Date);模板格式Date对象

 

new Random() 创建一个新的随机数生成器

.nextInt(int a)随机生成0—a的伪随机数

 

传递一个true参数,代表不覆盖已有的文件。并在已有文件的末尾处进行数据续写。

       FileWriterfw = new FileWriter("demo.txt",true);

 

Math.pow(double a,double b):返回a的b次方。

Math.round(double a):返回最接近参数的long型。

Math.ceil(16.34);返回大于指定数据的最小整数。

Math.floor(12.34);返回小于指定数据的最大整数。

 

Runtime类使用了单例设计模式。

Runtime r = Runtime.getRuntime();

Process p = r.exec("notepad.exe  a.java");用记事本打开a.java文件

 

System:类中的方法和属性都是静态的。

Properties prop = System.getProperties();获取系统属性信息

Properties是Hashtable的子类,也就是Map的子类。集合中存储都是字符串。没有泛型定义。

setProperty("mykey","myvalue");自定义属性

getProperty("os.name");获取指定属性信息

 

newLine();缓冲区中提供了一个跨平台的换行符。

 

装饰设计模式:对已有的对象进行功能增强,可以定义类,将已有对象传入。

 

键盘录入:

BufferedReader bufr =

              newBufferedReader(new InputStreamReader(System.in));

System.in字节流对象用InputStreamReader(此为转换流)转换为字符流

 

字符编码转换时,需要用到转换流。

 

File类常见方法:

1,创建。

   boolean createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建。

                       和输出流不一样,输出流对象一建立创建文件。而且文件已

经存在,会覆盖。

    booleanmkdir():创建文件夹。

    boolean mkdirs():创建多级文件夹。

2,删除。

    booleandelete():删除失败返回false。如果文件正在被使用,则删除不了返回falsel。

voiddeleteOnExit();在程序退出时删除指定文件。

3,判断。

    booleanexists() :文件是否存在.

    isFile():

    isDirectory();测试此抽象路径名表示的文件是否是一个目录。

    isHidden();测试此抽象路径名指定的文件是否是一个隐藏文件。

    isAbsolute();测试此抽象路径名是否为绝对路径名。

 

4,获取信息。

    getName():

    getPath():将此抽象路径名转换为一个路径名字符串。

    getParent():返回此抽象路径名父目录的路径名字符串;如果获取的是相对路径,返回

null。如果相对路径中有上一层目录那么该目录就是返回结果。

    getAbsolutePath()返回此抽象路径名的绝对路径名字符串。

    longlastModified() 返回此抽象路径名表示的文件最后一次被修改的时间。

    long length() 返回由此抽象路径名表示的文件的长度。

list() 返回一个字符串数组,此目录中的文件和文件夹。

listFiles() 返回一个文件数组,此目录中的文件夹。

length()文件的长度。

listFiles(FilenameFilter filter)实现接口覆盖其方法,进行过滤!  返回一个文件数组,

此目录中的文件夹和文件。


0 0
原创粉丝点击