A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 狗托。 中级黑马   /  2018-11-15 09:20  /  644 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

(就业班前三天笔记)Object类:
是所有没有明确父类,的“类”的父类,也就是祖宗类,所有类都能调用Object里面的用发。
主要两种用法:
toString把一个类的值转为字符串类型。
equals:比较两个变量值是否相等。Boolean类型接收(falsetrue)。
Date时间类:
里面的构造函数能够把毫秒,日期互相装换。
主要结构:Date da = new Date(); //拾取当前系统时间。
常用方法:
getTime();把日期转为对应的毫秒。
DateFormat类:
是日期/时间的抽象类,通个应用这个类可以把文本与日期之间相互转换。
集合与数组的区别:
数组:数组的长度是不能改变的,能存储基本类型或者引用类型。
集合: 集合的长度是可以改变的,只能存储引用类型。
集合的体系结构:
Collection
--List :有序(存取的顺序),有索引,允许重复。
ArrayList
LinkedList
Vector
--Set: 无序(不保证存取的顺序一致),无索引,不允许重复。
HashSet
        --LinkedHashSet
Collectionz中常用的功能:
boolean add(E e);              添加指定元素,返回是否添加功能。
Void clear();                  删除集合中所有元素(清空)
Boolean contains (Object o) ;    判断集合中是否包含指定元素。
Boolean isEmpty() ;           判断集合是否为空(元素的个数是否为0)
Boolean remove(Object o) ;     删除指定元素第一次出现的那个,返回是否删除功能(当元素不存在删除失败)
Int size();                 返回元素的个数
Object [] toArray() ;           将集合转为数组。
Iterator:                                                 Collectionz的迭代器。(Collectionz 下面所有的集合都能用这个迭代器。)
Boolean hasNext();                                判断是否有迭代元素。  
E next()                                        取出指定元素。
使用格式:        
public class test01 {
    public static void main(String[] args) {
        Collection<String> c = new ArrayList();

        c.add("小红");
        c.add("小紫");
        c.add("小粉");

        Iterator<String> it = c.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }
    }
}
主意事项:
1NOSuchElementException 没有指定元素异常。
解释:
        当迭代器遍历集合的末尾已经没有元素可以遍历,如果还调用next方法获取,则抛出此条报错。
2ConcurrentModificationException 并发修改异常。
解释:
        当我们使用迭代器进行遍历集合的时候,如果此时我们对集合进行添加/删除,则会导致遍历结果不确定,则抛出此异常。
记住:
  我们使用迭代器的时候,不要在使用过程中添加或者删除。
增强for循环:
格式:
for(元素类型 变量名 : 数组/集合名称){
Sout();
}
工作原理:
        每次都会将数组/集合元素赋值给“:”左边的变量,我们就能通过操作变量从而操作集合/数组中的元素。
泛型:
使用泛型的好处:
1:限定了存储数据的类型,减少因为类型转换带来的一些问题。
2:简化代码的书写,可以不用向下转型。
定义泛型类:
在定义类的时候在类名后声明泛型:当我们创建此类对象的时候,确定泛型具体是什么类型。
Class Boxx<E>
定义泛型方法:
应用场景:如果返回值类型和传递的参数时相关的,这个时候推荐使用泛型方法。
Public <E> void getElement((ArrayList<E> list,int index){
}
定义泛型接口:
1:在定义实现类的时候,直接确定接口中的泛型具体类型。
Interface Box<E>{
}
Class BoxImpements Box<String>{
}
2:在定义现实类的时候不确定泛型类型,但是在创建实现类对象的时候再去确定具体类型。
Interface Box<E>{
}
Class BoxImpl<E>impements Box<E>{
}
BoxImp<String> b = new BoxImpl<String>()
数组:ArrayList底层是数组的实现。
特性:
1:长度不可变。
查询快:数组的地址是连续的,通过数组的首地址可以找到数组,通过数组的索引可以快速的查找某个元素。
增删慢:
2:查询快(元素有对应的索引,是一片连续的存储空间。1
链表:
特点:
1:增删快(添加增删元素不会改变原有内容)
2:查询慢()
双向链表:
1
红黑树:
特点:
查询快。
名词解释:
二叉树:分支不超过两个。
查找树/排序树:是一个有序的二叉树(左子树小于节点,右子树大于节点)左中右。则是从小到大的顺序。
平衡树:左右子树高度差不超过1
红黑树:趋近于平衡树,查询速度非常快。
Java.util.List
概述:
Collection下的一个子接口,在list接口下的集合都有以下特点。
1:有序。
2:有索引。
3:允许重复。
List中的特有功能(和索引相关的增删改查的功能)
Void add(int  index,E element):在指定索引位置添加元素。
E removeint index):删除指定索引位置的元素,把删除的元素返回。
E setint indexE element):修改指定索引个位置的元素。
E get(int index):获取指定索引位置元素。
AarryList:底层实现的数组(查询快,增删快)
LinkedList:底层实现的链表(查询慢,增删快)
特有功能:
针对于链表的首尾位置元素的操作。
E getFirst()
E getLast()
E removeFirst()
E removeLast()
Set接口的特点:
1:不允许存储重复元素。
2:没有索引,没有带索引的方法,也不能使用普通for循环。
JavaUtilHashSet集合 implements Set接口
特点:底层是hash表的实现,查询效率高。
1:不允许重复存储元素。
2:无索引
3:无序(不保证存和取的顺序)
HashSe存储原理:
通过hashCode方法确定索引位置。
再通过equals方法去除重复元素。
总结:
存储元素的操作:
1.先获取对象的hash值去存储元素。
2.Hash值不一样
则比较equals的返回值。
如果是true则认为元素重复。
如果是false,则认为元素不重复,则添加元素。
当我们用HashSet存储自定义对象的时候,如果想保证元素的唯一性,则需要重写HashCodeequals方法。
LinkedHashSet:本质就是一个有序的HashSet
Hash表用于储藏元素。
链表用于记录储藏顺序,当我们获取元素的时候,则会通过链表记录的顺序获取元素。
可变参数:
一种特殊的参数类型,可以接受任意多个同种数据类型的数据,:0种,一种,多种!
格式:
  数据类型...  参数名
原理:
将传递的任意多个元素,封装到一个数组中,最后再传递给可变参数的变量。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马