Java集合使用备忘

总结如下:
保存单个值的集合: Collection
|- List: 允许有重复的元素。
|-ArrayList: 异步处理,新的类,只能用Iterator输出。
|-Vector: 同步处理,旧的类,能用Iterator ,Enumeration同时输出。
|-Set: 不允许有重复的元素。
|-HashSet: 散列,无序
|-TreeSet:有序,按Comparable排序。
保存一对值(Map)

|-HashMap: 异步处理,新的类。
|-HashTable:同步处理,旧的类。
|-TreeMap: 按KEY进行排序的集合。

输出:
|-Iterator: 新的输出类,方法名称较短。
|-Enumeration :旧的输出类,方法名称较长。


Set List 使用基本一致
add(Object o); remove(Object 0);
第一个区别:HashSet子类存放的是无序的(散列存放)
第二个区别:List允许重复数据,重复数据保留下来。
Set不允许重复数据,重复数据变替换掉。
在Set中使用HashSet是散列的无序的存放,如果希望有序的存主使用TreeSet(升序排列).
靠的是Comparable接口排序。

Map 的作用主要是作为查找使用,不是做为输出使用。
pub(Object key,Object value);
get(Object key);
Map 接口的对象不能使用Iterator输出。
若非要使用Iterator输出,可用以下步骤:
Map -->Set -->Iterator -->Map.Entry -->key,value.

Map m = new HashMap() ;
m.put("张三","123456") ;
m.put("李四","654321") ;
m.put("王五","890762") ;

Set all = m.entrySet() ;
Iterator iter = all.iterator() ;
while(iter.hasNext())
{
Map.Entry me = (Map.Entry)iter.next() ;
System.out.println(me.getKey()+" --> "+me.getValue()) ;
}
若想排序:可有TreeMap,它是按照KEY排序。

// Vector 是同步的,效率比ArrayList要低。
Vector v = new Vector() ;
v.add("A") ;
v.add("A") ;
v.add("A") ;
v.add("A") ;
v.add("A") ;
v.add("A") ;
// Enumeration 在List和Set中不能使用。iterator都可使用,目前多使用iterator
Enumeration e = v.elements() ;
while(e.hasMoreElements())
{
System.out.println(e.nextElement()) ;
}

Stack 后进先出。Stack是Vector的子类。

Stack s = new Stack() ;
s.push("A") ;
s.push("B") ;
s.push("C") ;
s.push("D") ;
s.push("E") ;
// System.out.println(s.empty()) ; // 注意:false;
// 取值
while(!s.empty())
{
System.out.println(s.pop()) ;
}
// 如果内容已经全部弹出则再弹会出现错误
s.pop() ; // 出现错误。

HashTable 同HashMap(异步处理)使用一样,只是HashTable是同步处理的。
注:HashTable不支持Iterator。

Map m = new Hashtable() ;
m.put("CC","123") ;
m.put("DD","321") ;
m.put("AA","456") ;

Set all = m.entrySet() ;
Iterator iter = all.iterator() ;
while(iter.hasNext())
{
Map.Entry me = (Map.Entry)iter.next() ;
System.out.println(me.getKey()+" --> "+me.getValue()) ;
}
Properties是HashTable的子类。Properties主要保存字符串的。
setProperty(String key,String value)
getProperty(String key)
Properties p = new Properties() ;
p.setProperty("A","ABC") ;
p.setProperty("S","STU") ;
System.out.println(p.getProperty("A","不存在。")) ;
// 打印不存在
System.out.println(p.getProperty("B","不存在。")) ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值