首页 > 代码库 > string和stringbuffer的区别 集合的作用 ArrayList vector linklist hashmap hashtable collection和collections

string和stringbuffer的区别 集合的作用 ArrayList vector linklist hashmap hashtable collection和collections

  string给定的长度 不可变,当多个字符串联合的时候先转化为stringbuffer然后联合,速度慢,stringbuffer可以改变字符串的长度,当多个字符串连接的时候采用stringbuffer效率比较高。  

集合的作用

   对数据进行传送,对数据进行增删改查,还可以用来存放不同的对象。

    

import java.util.Vector;
import java.util.List;
import java.util.Iterator;
import java.util.Enumeration;

/**
* @desc Vector测试函数:遍历Vector和常用API
*
* @author skywang
*/
public class VectorTest {
public static void main(String[] args) {
// 新建Vector
Vector vec = new Vector();

// 添加元素
vec.add("1");
vec.add("2");
vec.add("3");
vec.add("4");
vec.add("5");

// 设置第一个元素为100
vec.set(0, "100");
// 将“500”插入到第3个位置
vec.add(2, "300");
System.out.println("vec:"+vec);

// (顺序查找)获取100的索引
System.out.println("vec.indexOf(100):"+vec.indexOf("100"));
// (倒序查找)获取100的索引
System.out.println("vec.lastIndexOf(100):"+vec.lastIndexOf("100"));
// 获取第一个元素
System.out.println("vec.firstElement():"+vec.firstElement());
// 获取第3个元素
System.out.println("vec.elementAt(2):"+vec.elementAt(2));
// 获取最后一个元素
System.out.println("vec.lastElement():"+vec.lastElement());

// 获取Vector的大小
System.out.println("size:"+vec.size());
// 获取Vector的总的容量
System.out.println("capacity:"+vec.capacity());

// 获取vector的“第2”到“第4”个元素
System.out.println("vec 2 to 4:"+vec.subList(1, 4));

// 通过Enumeration遍历Vector
Enumeration enu = vec.elements();
while(enu.hasMoreElements())
System.out.println("nextElement():"+enu.nextElement());

Vector retainVec = new Vector();
retainVec.add("100");
retainVec.add("300");
// 获取“vec”中包含在“retainVec中的元素”的集合
System.out.println("vec.retain():"+vec.retainAll(retainVec));
System.out.println("vec:"+vec);

// 获取vec对应的String数组
String[] arr = (String[]) vec.toArray(new String[0]);
for (String str:arr)
System.out.println("str:"+str);

// 清空Vector。clear()和removeAllElements()一样!
vec.clear();
// vec.removeAllElements();

// 判断Vector是否为空
System.out.println("vec.isEmpty():"+vec.isEmpty());
}
}

ArrayList和vector以数组的方式进行存储,查改块,增删慢。

ArrayList线程不安全,速度快。

vector线程安全的,速度慢(synchoronized)。

linklist增删快,查改慢,以链表存储。

hashmap和hashtable都是继承了map,hashtable线程是安全的,hashmap线程不安全。

collection是集合的子接口collections是算法

今天翻看Java笔试题,发现有这样问题,比较Collection 和Collections的区别。在这里把二者区别记录下来。
 
1、java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。
 Collection   
├List   
│├LinkedList   
│├ArrayList   
│└Vector   
│ └Stack   
└Set 
 
2、java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。
Java代码  技术分享
  1. import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;

    public class TestCollections {

    public static void main(String args[]) {
    //注意List是实现Collection接口的
    List list = new ArrayList();
    double array[] = { 112, 111, 23, 456, 231 };
    for (int i = 0; i < array.length; i++) {
    list.add(new Double(array[i]));
    }
    Collections.sort(list);
    for (int i = 0; i < array.length; i++) {
    System.out.println(list.get(i));
    }
    // 结果:23.0 111.0 112.0 231.0 456.0
    }
    }

  2. set里面的集合是不能重复的,用什么来区分?  在比较时候先调用hashcode方法,如果hashcode方法不相同则证明不相等,如果相等在调用equils方法,如果不相等就是不相等。

string和stringbuffer的区别 集合的作用 ArrayList vector linklist hashmap hashtable collection和collections