黑马程序员技术交流社区

标题: API常用类,Collection集合,增强for循环,泛型 [打印本页]

作者: 社会人    时间: 2018-11-14 16:07
标题: API常用类,Collection集合,增强for循环,泛型
本帖最后由 社会人 于 2018-11-14 17:02 编辑

第一天





object类 常用的APIobject
所有类的父类,顶尖类
toString方法
将调用的对象的参数输出
重写如在自定义类中
快捷方式toString
equals方法
判断对象是否相等(默认值为地址值)
若果需要判断值需要重写
@Override
public boolean equals(Object o) {



Data类(表示日期和时间的类)

public long getTime() 把日期对象转换成对应的时间毫秒值。
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");(表示格式)
Date parse(String source)`:将字符串解析为Date对象。
Date date = df.parse(str);
String format(Date date)`:将Date对象格式化为字符串。
String str = df.format(date);



DateFormat类

DateFormat为抽象类,不能直接使用.
需要常用的子类java.text.SimpleDateFormat.
构造方法为:
public SimpleDateFormat(String pattern)
pattern是哟个代表日期时间的自定义字符串的格式
y  年  M  月  d  日  H  时  m  分  s  秒
创建SimpleDateFormat对象的格式:
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
DateFormat的常用方法:
format:将Date对象格式化为字符串
String str = df.format(date);
parse:将字符串解析为Date对象
Date date = df.parse(str);



Calendar类(代表日历,提供了不同国家的历法)

Calendar类是一个抽象类,无法直接创建对象使用,里面有一个genInstance()该方法返回Calendar类的子类对象
使用方法:
Calendar c=new Calendar.getInstance();
YEAR  年
MONTH  月
DAY_OF_MONTH  月中的天(几号)  
HOUR  时(12小时制)
HOUR_OF_DAY  时(24小时制)
MINUTE  分  SECOND  秒  
DAY_OF_WEEK  周中的天(周几,周日为1,可以-1使用)
get(获取指定日历段的值)
cal.get(Calendar.DAY_OF_MONTH);
set(设置或更改指定日历段的值)
cal.set(Calendar.YEAR, 2020);
add(调整指定日历段的值+或-)
cal.add(Calendar.YEAR, -3);
getTime()
Calendar中的getTime方法并不是获取毫秒时刻,而是拿到对应的Date对象。
Calendar cal = Calendar.getInstance();        Date date = cal.getTime();        System.out.println(date);



System类
currentTimeMillis()方法
currentTimeMillis方法就是 获取当前系统时间与1970年01月01日00:00点之间的毫秒差值
1-9999所需要的时间(毫秒)
    long start = System.currentTimeMillis();
    for (int i = 0; i < 10000; i++) {
        System.out.println(i);
    }
    long end = System.currentTimeMillis();
    System.out.println("共耗时毫秒:" + (end - start));




StringBuilder类
称为字符串缓冲区可以将字符串的拼接简化(减省内存)

public class StringBuilderDemo {
    public static void main(String[] args) {
        StringBuilder sb1 = new StringBuilder();
        System.out.println(sb1); // (空白)
        sb1.append("fafw");
        // 使用带参构造
        StringBuilder s=new StringBuilder("itcast");
     
        System.out.println(s); // itcast
    }
}
append方法
append方法具有多种重载形式,可以接收任意类型的参数.任何数据作为参数都会将对应的字符串内容添加到StringBuilder中
StringBuilder对象append可以添加任何类型
链式编程:
builder.append("hello").append("world").append(true).append(100);
toString方法
toString方法,StringBuilder对象将会转换为不可变的String对象
链式创建:
StringBuilder sb = new StringBuilder("Hello").append("World").append("Java");



第二天




Collection集合
Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是java.util.List和java.util.Set。其中,List的特点是元素有序、元素可重复。Set的特点是元素无序,而且不可重复。List接口的主要实现类有java.util.ArrayList和java.util.LinkedList,Set接口的主要实现类有java.util.HashSet和java.util.TreeSet。
Collection常用功能
public boolean add(E e)`:  把给定的对象添加到当前集合中
public void clear()` :清空集合中所有的元素
public boolean remove(E e)`: 把给定的对象在当前集合中删除
public boolean contains(E e)`: 判断当前集合中是否包含给定的对象
public boolean isEmpty()`: 判断当前集合是否为空
public int size()`: 返回集合中元素的个数
public Object[] toArray()`: 把集合中的元素,存储到数组中
Iterator接口
迭代:即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出用专业术语讲为迭代
iterator接口常用方法:增强for循环
格式为:
for(元素的数据类型  变量 : Collection集合or数组)
练习:

    int[] arr = {3,5,6,87};
    //使用增强for遍历数组
    for(int a : arr){//a代表数组中的每个元素
        System.out.println(a);
    }




泛型
可以在类或方法中预支地使用未知的类型
泛型的好处泛型的定义
定义格式
修饰符 class 类名<代表泛型的变量> {  }
含有泛型的方法
定义格式
修饰符 <代表泛型的变量> 返回值类型 方法名(参数){  }
含有泛型的接口
定义格式
修饰符 interface接口名<代表泛型的变量> {  }
泛型的通配符
当使用泛型类或者接口时,传递的数据中,泛型类型不确定,可以通过通配符<?>表示。但是一旦使用泛型的通配符后,只能使用Object类中的共性方法,集合中元素自身方法无法使用
泛型的上限
泛型的下限







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2