Java基础知识5

Date类的概述

        类 Date 表示特定的瞬间,精确到毫秒。

    B:构造方法

        public Date()

                   拿到的是当前的瞬间

        public Date(long date)

                拿到 基准时间+date  的时间

    C:成员方法

        public long getTime()

        返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

        public void setTime(long time)

DateFormat类的概述

        DateFormat 是日期/时间格式化子类的抽象类,

                                         它以与语言无关的方式格式化并解析日期或时间。

        是抽象类,所以使用其子类SimpleDateFormat

    B:SimpleDateFormat构造方法

        public SimpleDateFormat()

        public SimpleDateFormat(String pattern)

    C:成员方法

        public final String format(Date date)

        public Date parse(String source)

             把日期的 一种格式转换成 对应的日期对象

Math类概述

        Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

    B:成员方法

        public static int abs(int a)  绝对值

        public static double ceil(double a)   向上取整

        public static double floor(double a)   向下取整

        public static int max(int a,int b)  求两数最大值

         min自学                                                         求两数最小值

        public static double pow(double a,double b)

        public static double random()

        public static int round(float a)   四舍五入 成整数 参数为double的自学

        public static double sqrt(double a)

Random类的概述

        此类用于产生随机数  如果用相同的种子创建两个 Random 实例,

        则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。

    B:构造方法

        public Random() 使用默认的种子用来创建随即数对象的空参构造方法,(默认种子就是当前时间毫秒值)

        public Random(long seed):使用指定的种子来创建随机数对象,

    C:成员方法

        public int nextInt()

                             返回一个随机的int范围内的整数

        public int nextInt(int n)

                   0~指定范围内的,包括0不包括指定数

Collection

 *      层次结构中的根接口。Collection 表示一组对象,

 *      这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。

 *      一些 collection 是有序的,而另一些则是无序的。

 *      JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现。

 *  Collection的功能:
 *  a: 添加元素

 *      boolean add(E e)                添加元素

 *      boolean addAll(Collection c)    添加一个集合的元素

 *  b: 删除元素

 *      void clear()                    移除集合中所有的元素

 *      boolean remove(Object o)        删除一个元素

 *      boolean removeAll(Collection c) 删除一个集合的元素(删除一个以上算是删除,还是删除所有的算是删除?)

 *  c: 获取功能

 *      int size()                      获取集合的长度

 *  d: 遍历

 *     Iterator iterator()                 遍历集合的一种方式(重点)

 *  e: 判断

 *      boolean contains(Object o)          判断某一个集合是否包含指定的元素

 *      boolean containsAll(Collection c)   判断是否包含一个集合的元素(包含一个以上算是包含,还是包含所有的算是包含?) 包含所有算是包含

 *      boolean isEmpty()                   判断集合是否为空

 *   f: 求交集的功能

 *          boolean retainAll(Collection c)     获取交集元素 (获取到的交集元素存储到什么地方了, 返回的 boolean类型的值表示什么意思?)交集存储在调用该方法的集合里,返回值没有用

 *   g: 集合转数组的功能

 *          Object[] toArray()                  把一个集合转换成数组

集合遍历:

1.把集合转化成数组    toArray(),然后实际是遍历数组。
2.迭代器遍历:Iterator()  //获取迭代器     iterator=Iterator()

while(inteator.hasNext){

iterator.next()

}

3.普通for()

for(int i=0;i<arrList.size;i++){

arrList.get(i);

}

4.增强for循环
增强for格式:
for (数据类型 变量名:要循环的数组或集合){
    循环体
    }
说明:数据类型:要循环的数组或集合中的元组的数据类型      变量名:要循环的数组或集合中的元素,实际就可以理解成元素。

ArrayList<String> List=new ArrayList<String>()

list.add("aa");

list.add("bb");

list.add("cc");

list.add("dd");

for(String ele:list){

System.out.println(ele);

}

比较两个对象是否相等:比较的是对象属性是否相同

contains(new Student())

contains最终比较底层也是内容是否相等,所以如果集合的元素是自定义的类,那就需要在自定义类中实现equals方法

 引出泛型:

集合可以存储多种数据类型,但是在进行元素类型强转的时候,容易出现classCaseException,未来避免这种异常的抛出,可不可以让集合达到和数组一样的效果,就是数据类型一致,就引出泛型;

泛型:明确数据类型的工作往后推,直到,方法的调用、创建对象的时候确定

例如:public class ArrayList<E> extends AbstractList<E> implements List<E>,RandomAccess,Cloneable ,java.io.Serializable,这是Array List这个类在声明时指定一个泛型<E>,因为集合在声明时,也不会知道,自己存储什么样的数据,所以通过泛型来表示,直到创建Array List对象的时候,才能确定这个集合到底存放什么数据类型。

List(集合)有序、不唯一、有下标:
有序(怎么存就怎么获取)元素可以重复,获取的是元素的属性值是否相等。
ArrayList特点
底层是数据结构是数组,查询快,增删慢,线程不安全效率高。
LinkedList特点
底层的数据结构是链表,查询慢,增删快,线程不安全效率高。

int的包装类型是Integer

Vector特点:
底层是数据结构是数组,查询快,增删慢,线程安全效率低。
public void addElement(E obj)    添加元素
public E elementAt(int index)    根据索引获取元素
public Enumeration elements()    类似于迭代器,可以用来遍历集合。


Set集合特点(无序、唯一、没有下标):
无序(不是按照存放元素的顺序获取元素),元素唯一(对象属性是否相等),并且每个元素不存在对应的整数索引,所以遍历Set集合需要使用增强for循环或者迭代器
HashSet:
哈希表保证元素唯一依赖于hashCode方法和equals方法。
如果两个对象的hashCode 值相同;
并且调用该对象的equals方法返回值是ture的时候,那么就说明俩个对象是相同的。

TreeSet:
可以对元素进行排序,(保证了元素的唯一,还有序,按照某种顺序进行排序)而排序分为两种方式

 TreeSet在创建对象的时候,没有给比较器,那就是按照自然排序的方式进行排序

         * 问题的关键是:集合中存储的元素支不支持自然排序,如果元素类实现了Comparable并实现compareTo方法,就能进行自然排序

         *否则,就会跑出java.lang.ClassCastException这个异常

         1.  一种自然排序 public TreeSet()
            如果TreeSet中的元素是自定义对象,那就需要在自定义类中实现Comparable中的compareTo方法
            如果TreeSet中的元素是String,Integer,Long等包装类,可以实现自然排序
            原因:这些类也实现了Comparable中的compareTo方法
            String自然排序的顺序:按字母表排
            String:compareTo中的逻辑。
            Integer自然排序的顺序是降序。


       2. 一种比较器排序 public TreeSet(Comparator comparator)
        需要实现接口Comparator接口中的compare方法

compareTo(Object o):在实体类中实现Compareable接口,再重写compareTo的方法,o表示在集合中已经存在的元素,this表示当前添加的元素

比较器:在测试类中创建TreeSet对象的时候通过匿名类的方式进行创建,重写方法的内容写法跟compareTo方法中的一样

Collection集合和Map集合区别:


1.Map集合属于双列集合,Collection属于单列集合,Map集合:夫妻对;Collection集合:孤狼
2.Map集合键是唯一性,而Collection集合中的Set集合可以保证元素唯一性
3.Map集合的数据结构只和键有关,和值没关 ;Collection集合的数据结构和元素有关

Collection

 *      List : ArrayList  LinkedList  Vector  (有序,怎么存怎么取,可以重复)

 *      Set     HashSet   LinkedHashSet  TreeSet (有序,元素按照某种顺序进行排序,元素唯一)

 Map集合是一个接口 , 接口不能直接实例化 , 如果我们要对其进行实例化,那么就需要使用子类 , HashMap 和  TreeMap

  Map集合的功能概述:
 *   a: 添加元素

 *          V put(K key, V value)                   添加元素

 *   b: 删除元素

 *          void clear()                            删除所有的元素

 *          V remove(Object key)                    根据键删除元素

 *   c: 获取元素

 *          V get(Object key)                       根据键获取值

 *          Set<K> keySet()                         获取所有的键对应的Set集合

 *          int size()                              获取集合的长度

 *          Collection<V> values()                  获取所有的值对应Collection

 *   d: 判断该功能

 *          boolean containsKey(Object key)         判断是否包含某一个键

 *          boolean containsValue(Object value)     判断是否包含某一个值

 *          boolean isEmpty()                       判断集合是否为空

 *   e: 遍历Map集合

 *          Set<Map.Entry<K,V>> entrySet()

TreeMap集合的特点:

底层的数据结构是二叉树,可以对元素进行排序

 *  而排序有两种方式

 *  第一种是自然排序   public TreeMap()

 *     对元素有要求 , 要求元素必须实现 Comparable 接口

 *  第二种是比较器排序 public TreeMap(Comparator comparator)

 *  我们到底使用的是自然排序还是比较器排序,主要依赖于构造方法

 *  Map集合的数据结构只和键有关系,和值没有关系

Map接口的常用实现类:

HashMap、TreeMap和Properties

HashMap:

HashMap是 Map 接口使用频率最高的实现类。

允许使用null键和null值,与HashSet一样,不保证映射的顺序。

HashMap 判断两个 key 相等的标准是:两个 key 通过 equals() 方法返回 true,hashCode 值也相等。

HashMap 判断两个 value相等的标准是:两个 value 通过 equals() 方法返回 true。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值