Java基本:集合
原文:http://zhaosoft.javaeye.com/blog/243586
Java
基本概念:集合类(Collection
) List
/Set/Map 的区别和联系
Collection
:List
、Set
Map:HashMap、HashTable
如何在它们之间选择
一、Array , Arrays
Java
所有“存储及随机访问一连串对象”的做法,array是最有效率的一种。
1、效率高,但容量固定且无法动态改变。
array还有一个缺点是,无法判断其中实际存有多少元素,length只是告诉我们array的容量。
2、Java
中有一个Arrays类,专门用来操作array。
arrays中拥有一组static函数,equals():比较两个array是否相等。array拥有相同元素个数,且所有对应元素两两相等。
fill():将值填入array中。
sort():用来对array进行排序。
binarySearch():在排好序的array中寻找元素。
System.arraycopy():array的复制。
二、Collection
, Map
若撰写程序时不知道究竟需要多少对象,需要在空间不足时自动扩增容量,则需要使用容器类库,array不适用。
1、Collection
和 Map 的区别
容器内每个为之所存储的元素个数不同。
Collection
类型者,每个位置只有一个元素。
Map类型者,持有 key-value pair,像个小型数据库。
2、各自旗下的子类关系
Collection
--List
:将以特定次序存储元素。所以取出来的顺序可能和放入顺序不同。
--ArrayList / LinkedList / Vector
--Set : 不能含有重复的元素
--HashSet / TreeSet
Map
--HashMap
--HashTable
--TreeMap
3、其他特征
* List
,Set,Map将持有对象一律视为Object型别。
* Collection
、List
、Set、Map都是接口,不能实例化。
继承自它们的 ArrayList, Vector, HashTable, HashMap是具象class,这些才可被实例化。
* vector容器确切知道它所持有的对象隶属什么型别。vector不进行边界检查。
三、Collections
Collections是针对集合类的一个帮助类。提供了一系列静态方法实现对各种集合的搜索、排序、线程完全化等操作。
相当于对Array进行类似操作的类——Arrays。
如,Collections.max(Collection
coll); 取coll中最大的元素。
相关文档:
http://edu.itfuture.org/index.jsp 程序员之家
www.8isp.com
www.wang48.com
www.topsage.com 大家网
www.cnsd.com
http://www.jpeixun.com / 时代骏晟
http://bbs.langsin.com/forum-9-3.html 浪曦网
www.123w.net
w ......
(最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没有考虑到会坚持往后边写,这次应该是更新该内容。而且很讨厌写基础的东西,内容比较琐碎,而且整理起来总会很多,有可能会打散成两个章节,但是我不保证,有可能一个章节就写完了,所以有时候希望基础的很多内容还是读者自己去看看,我基� ......
Eryptogram.java 文件:
package com.cube.limail.util;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
/**
* 加密解密类
* @author 叶树深
* @version 1.00 2008年01月03日
*/
public class Eryptogram
{
&nb ......
我们学习java必须把基础打好,只有这样,你的技术才能过关,技术过关了,学习任何框架都很容易,项目开发更是得心应手。。。
学习顺序基本是:
基本语法------> 类相关的语法-------> 内部类的语法---------> 继承相关的语法-------> 异常的语法-------> 线程的语法------>集合的语法--------> ......
/**
* 得到本周周一
*
* @return yyyy-MM-dd
*/
public static String getMondayOfThisWeek() {
Calendar c = Calendar.getInstance();
int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
if (day_of_week == 0)
da ......