博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
string和stringbuffer的区别 集合的作用 ArrayList vector linklist hashmap hashtable collection和collections...
阅读量:4550 次
发布时间:2019-06-08

本文共 2976 字,大约阅读时间需要 9 分钟。

  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方法,如果不相等就是不相等。

转载于:https://www.cnblogs.com/jianxin-lilang/p/6443929.html

你可能感兴趣的文章
Linux:文本处理工具
查看>>
java,for穷举,经典题目,百鸡百钱
查看>>
mysql提示Column count doesn't match value count at row 1错误
查看>>
前端--jstree--异步加载数据
查看>>
CSS定位深入理解 完全掌握CSS定位 相对定位和绝对定位
查看>>
网络体系结构
查看>>
练习4.13、4.14、4.15、4.16
查看>>
SAP库龄表
查看>>
PhantomJS 基础及示例 (转)
查看>>
20175316盛茂淞 2018-2019-2 《Java程序设计》第3周学习总结
查看>>
zookeeper安装
查看>>
js清空页面控件值
查看>>
Appium使用Python运行appium测试的实例
查看>>
django request bug
查看>>
二叉树_非递归先中后序_递归非递归求深度
查看>>
20181227 新的目标
查看>>
HDFS写流程
查看>>
生产环境服务器环境搭建+ 项目发布
查看>>
js按条件分类json数组,并合计同组数据(一维转换为二维)
查看>>
Exp6 信息搜集与漏洞扫描
查看>>