java集合总结
      一、数组、集合
      数组、集合:都是一种容器,用一个对象管理多个对象;
      数组:不能自动增长;只能存放同类型的元素
      集合:能自动扩容;部分集合允许存放不同类型的元素;
      二、学习这些集合类要把握哪些东西:
      1〕怎样得到〔选择〕集合对象;
      2〕怎样添加元素
      3〕怎样删除元素
      4〕怎样循环遍历没一个元素
      三、list、set、map
      collection:父接口;
      Set:接口一个实现类:HashSet
      List:接口三个实现类:LinkedList,Vector,ArrayList
      SortedSet:接口实现类:TreeSet
      1、List:
      List:有序列表,允许存放重复的元素;
      实现类:
      ArrayList:数组实现,查询快,增删慢,线程担心全,轻量级;下标也是从0开头;
      LinkedList:链表实现,增删快,查询慢
      Vector:数组实现,线程平安,重量级
      2.Set:
      无序集合,不允许存放重复的元素;
      实现类HashSet:equals返回true,hashCode返回相同的整数;哈希表;
      子接口SortedSet:对Set排序实现类:TreeSet:二叉树实现的;
      看API:E泛型:表示一个对象;
      Iterator:接口,迭代器;
      java.util;
      hasNext();
      next();
      remove();
      Iterable:可迭代的,访问的;
      ng;实现了可迭代的接口就可以用迭代的方式访问;
      只需实现iterator();方法即可;Iteratoriterator();
      三种循环的访问方式:
      只有实现了Iterable接口的才能用第三种;能用其次种的也肯定能用第三种;
      ArrayList:自动扩容,是数组照搬过来的;
      3.Map
      HashMap:键值对,key不能重复,但是value可以重复;key的实现就是HashSet;value对应着放;
      HashSet的后台有一个HashMap;初始化后台容量;只不过生成一个HashSet的话,系统只供应key的访问;
      假如有两个Key重复,那么会掩盖之前的;
      Hashtable:线程平安的
      Properties:java.util.Properties;key和value都是String类型,用来读配置文件;
      HashMap与Hashtable区分:
      HashMap线程担心全的,允许null作为key或value;
      Hashtable线程平安的,不允许null作为key或value;
      TreeMap:对key排好序的Map;key就是TreeSet,value对应每个key;
      key要实现Comparable接口或TreeMap有自己的构造器;
      HashSet:remove(Objecto)的原则看这个对象O的Hashcode和equals是否相等,并不是看是不是一个对象;
      定义一个Map;key是课程名称,value是Integer表示选课人数;
      map.put((cou)+newInteger(1));
      四、Hashtable、Properties
      1,Hashtable:实现了Map接口,此类实现一个哈希表,作用和HashMap相同。任何非null对象都可以用作键或值。为了胜利地在哈希表中存储和猎取对象,用作键的对象必需实现hashCode方法和equals法。
      2,Properties:继承自Hashtable,比Hashtable更严格属性列表中每个键及其对应值都是一个字符串。
      常用方法StringgetProperty(String?key)和setProperty(Stringkey,Stringvalue);
      用法:我在C盘下建了一个名为yy.dat的文件,文件的内容为:
      name=hehe
      password=12345
      执行以下程序,输出hehe,可见用Properties可以很便利的解析配置文件
      Propertiesp=newProperties();
      p.load(newFileInputStream("C:\\yy.dat"));
      System.out.Property("name"))
      五、两个工具类Arrays和Collections
      1.Arrays、此类包含用来操作数组〔比方排序和搜寻〕的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂
      2.Collections、主要供应了在collection上进行操作的静态方法
      六、遗留的几个类
      1.Hashtable,作用和HashMap相同,不过它是线程平安的,假如不需要线程平安,应当使用HashMap
      2.Enumeration,遗留集合使用枚举接口来遍历元素,它有两个方法,hasMoreElements和nextElement,用法类似Iterator。
      3.Stack,继承自Vector,实现了栈的功能,供应了push()方法押栈和pop()方法出栈。
冒泡排序java代码详解
      4.BitSet,位集。假如需要高效率的存储一个位序列,例如一个标志序列,请使用位集。它可以对各个位进行