您的位置:首页 > 编程语言 > Java开发

java中的集合类的用法和使用场合

2007-05-20 16:56 281 查看
HashTable,Vector类是同步的,而HashMap,ArrayList不是同步的。 因此当在多线程的情况下,应使用 HashTable和 Vector,相反则应使用HashMap,ArrayList.如果需要使用同步的集合可以使用 Collections.synchronizedList(List<T> list)得到同步的 List,Collections.synchronizedMap(Map<K,V> m) 的到同步的Map,也可以由Collections.synchronizedSet(Set<T> s)得到同步的Set,但他们的效率稍低.另外在除需要排序时使用TreeSet,TreeMap外,都应使用HashSet,HashMap,因为他们 的效率更高。ArrayList  和LinkList 的对比:ArrayList 由数组构建, LinkList由双向链表构建,因此在程序要经常添加,删除元素时速度要快些,最好使用LinkList,而其他情况下最好使用ArrayList.因 为他提供了更快的随机访问元素的方法。
在需要使用栈时,应使用LinkList 类来构件,不应使用Stack,因为Stack继承自Vector,包含方法elementAt(int indext),可以取得任意位置的对象,因此破坏了栈的机制.

可以使用LinkList 构建堆栈,和队列,方法如下:

堆栈:要点-->后进先出.

class MyStack{
 private LinkedList linkList;
 
 public MyStack(){
  this.linkList = new LinkedList();
 }
 
 public Object pop(){
  return linkList.removeLast();
 }
 public void push(Object obj){
  linkList.addLast(obj);
 }
 public Object peek(){
  return linkList.getFirst();
 }
 public boolean isEmpty(){
  return linkList.isEmpty();
 }
 public int size(){
  return linkList.size();
 }
}

队列:要点-->先进先出.

class MyQueue{
 
private LinkedList linkList;
 
 public MyQueue(){
  this.linkList = new LinkedList();
 }
 
 public Object pop(){
  return linkList.removeFirst();
 }
 public void push(Object obj){
  linkList.addLast(obj);
 }
 public Object peek(){
  return linkList.getFirst();
 }
 public boolean isEmpty(){
  return linkList.isEmpty();
 }
 public int size(){
  return linkList.size();
 }
}

 

Properties类可以用来保存配置信息.需要注意的是无论文件的后缀名称是什么格式的如ini,txt,edi,etc..只要形式如下:

win.ini:

Author=Alan
version=1.2

使用Properites的load方法就能加载进来读取.另外System.getProperties将返回当前系统的所有属性。

Properties使用方法:

package com.jingcheng.base;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.Map.Entry;
public class PropertyTest {

 /**
  * @param args
  * @throws IOException
  */
 public static void main(String[] args) throws IOException {
  // TODO Auto-generated method stub

  Properties props = new Properties();
  FileInputStream fis = new FileInputStream("win.prop");
  props.load(fis);
  Set sets = props.entrySet();
  Iterator it = sets.iterator();
  while(it.hasNext()){
   Map.Entry mapEntry = (Map.Entry)it.next();
   System.out.println("key:"+mapEntry.getKey());
   System.out.println("value:"+mapEntry.getValue());
  }
 }

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息