java集合总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、数组、集合
数组、集合:都是一种容器,用一个对象管理多个对象;
数组:不能自动增长;只能存放同类型的元素
集合:能自动扩容;部分集合允许存放不同类型的元素;
二、学习这些集合类要掌握哪些东西:
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:
Iterator:接口,迭代器;
java.util;
hasNext();
next();
remove();
Iterable:可迭代的,访问的;
ng;实现了可迭代的接口就可以用迭代的方式访问;
只需实现iterator();方法即可;Iterator iterator();
三种循环的访问方式:
for(int i=0;i }Iterator it=list.iterator(); while(it.hasNext()){ System.out.println(it.next()); } for--each循环: for(Object obj:list){ System.out.println(obj); } 只有实现了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(Object o)的原则看这个对象O的Hashcode和equals是否相等,并不是看是不是一个对象; 定义一个Map; key是课程名称,value是Integer表示选课人数; map.put(cou,map.get(cou)+new Integer(1)); 四、Hashtable、Properties 1,Hashtable:实现了Map接口,此类实现一个哈希表,作用和HashMap相同。任何非null对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用 作键的对象必须实现hashCode方法和equals法。 2,Properties:继承自Hashtable,比Hashtable更严格属性列表中每个键及其对应值都是一个字符串。 常用方法String getProperty(String?key)和setProperty(String key,String value); 用法:我在C盘下建了一个名为yy.dat的文件,文件的内容为: name=hehe password=12345 执行以下程序,输出hehe,可见用Properties可以很方便的解析配置文件 Properties p = new Properties(); p.load(new FileInputStream("C:\\yy.dat")); System.out.println(p.getProperty("name")) 五、两个工具类Arrays和Collections 1.Arrays、此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一 个允许将数组作为列表来查看的静态工厂 2.Collections、主要提供了在collection上进行操作的静态方法 六、遗留的几个类 1.Hashtable,作用和HashMap相同,不过它是线程安全的,如果不需要线程安全,应该使用HashMap 2.Enumeration,遗留集合使用枚举接口来遍历元素,它有两个方法, hasMoreElements和nextElement,用法类似Iterator。 3.Stack,继承自Vector,实现了栈的功能,提供了push()方法押栈和pop()方法出栈。