------- android培训、java培训、期待与您交流! ----------
集合Collection接口
add(E e) --添加单个元素 添加失败返回假 添加成功返回真 有的集合不允许重复元素,所以调用该方法就会返回false
如果是集合不支持add操作或不允许添加指定类的元素或不允许添加null元素等而导致添加 失败,则会抛出异常
addAll(集合) --添加一个集合
remove(Object o) --移除指定单个元素 ,如果集合而存在一个或多个指定元素的则移除符合的一个元素并返回true,如果不存在返回false
removeAll(集合) --移除交集 , 如果存在交集则移除成功返回true
retainAll(集合) --保留交集
clear() --清空集合中所有元素
toArray() --集合转换成数组,Object类型数组
<T> T[] toArray(T[] a) --返回指定类型的数组
contains(Object o) --包含指定元素返回真
containsAll(集合) --此集合包含指定子集
isEmpty() 此集合不包含任何元素返回true
size() --集合元素个数 ,如果集合包含的元素个数
equals(Object o) --比较此collection是否与指定对象相等
Iterator<E> iterator() 返回以恰当顺序在此列表的元素上进行迭代的迭代器。 集合特有的元素的获取方式
的方法,凡是可以操作下标的都是list特有的方法。
list集合特有的迭代器ListIterator
在迭代的时候,不可以通过集合对象操作集合的元素。因为会发生ConcurrentModificationException
List
|-----ArrayList 底层是数组、有序,方便查找
|-----LinkedList 底层是链表,有序,方便插入和删除
|-----voctor 和ArrayList一样,是线程安全的。
Set
|-----HaseSet 底层是hash表 无序
是通过元素的两个方法,hashCode()和equals来完成的。
先判断hashCode(),如果hash值线条,才会判断equals方法。
如果hash值不同,则不会判断equals,相对来说效率更高,
所以一般的会同时重写hashCode和equals方法。
|-----TreeSet 底层是二叉树
可以对set集合中的元素排序(字母自然顺序)
保证元素唯一性的依据是:compartTo方法return 0.
1、TreeSet排序有默认的方式,让元素自身具备比较方法,需要实现Comparable接口,覆盖compareTo方法。
2、让TreeSet自身具备比较方式。
Set集合的功能和Collecation是一致的。
Set底层其实就是map集合。
Map--
|----HashTable 底层是hash表结构,不可以存在Null健和null值,该集合石线程同步的。
|----HashMap 底层是hash表结构,可以有Null键null值,但只有一个Null健。是不同步,线程不安全。
|----TreeMap 底层是二叉树,线程不同步,可以给map集合中的键排序。
遍历Map集合的两种方式
1、keySet:将map中所有的键存入到set集合中,因为set具备迭代器。
所有可以迭代方式取出所有的键,在根据get方法。获取每一个键对应的值。
2、entrySet
Set<Map.Entry<k,v>> entrySet:将集合汇总的映射关系存入到了set集合中,而这个关系的数据类型就是Map.Entry
System---------
Properties是Hashtable的子类,也就是Map集合。
可以用
for(Object obj : System.getProperties().keySet()){
String value = (String)obj.get(obj);
S.O.P(value);
}
在虚拟机启动的时候,动态加载参数。
Runtime-------------单例的,没有构造函数,说明不可以new对象。
每个java程序都有一个Runtimm实例,使应用程序能够预期运行的环境相连,
该类中有非静态法方法,说明提供了返回本类对象的方法。
Runtime r = Runtime.getRuntime();
Process p = r.exex("notepad.exe",Demo.java);//打开记事本,并打开具体的文件,会抛出异常。
p.destory();杀死进程。
Date-----------------
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");
sdf.format(date);
Calendar---------------
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.get(YEAR);
calendar.add(Calendar.YEAR,4);在当前时间上加4天