Java集合(HashMap和Hashtable区别,集合工具类Collectoins)

一、HashMap与Hashtable区别

HashMap与Hashtable的区别:

     1.HashMap:键允许为null,值允许为null,线程不安全,效率高

     2.Hashtable:键不允许为null,值不允许为null,线程安全,效率低

示例代码:

package com.map.test;

import java.util.HashMap;
import java.util.Hashtable;
import java.util.Set;

/**
 *HashMap与Hashtable的区别
 * HashMap:键允许为null,值允许为null,线程不安全,效率高
 * Hashtable:键不允许为null,值不允许为null,线程安全,效率低
 *
 * List,Set,Map等接口是否都继承自Map
 * List,Set不是继承自Map,而是继承自Collection接口
 * Map接口本身就是个顶层接口
 */
public class HashMapHashtableTest {
    public static void main(String[] args) {
        //HashMap<String,String> hm = new HashMap<String,String>();
        Hashtable<String,String> hm = new Hashtable<String,String>();

        hm.put("it","hello");
        hm.put(null,"world");//NullPointerException
        hm.put("java",null);//NullPointerException

        Set<String> se = hm.keySet();
        for(String s : se){
            System.out.println(s+"--"+hm.get(s));
        }
    }
}

二、Collections集合工具类

Collections是集合的工具类,对集合进行操作。此类完全由在 collection 上进行操作或返回 collection 的静态方法组成。

一些方法用法:

package com.Collections.test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * 集合工具类:Collections
 */
public class CollectionTest {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<Integer>();

        list.add(10);
        list.add(30);
        list.add(20);
        list.add(60);
        list.add(50);
        list.add(40);
        //System.out.println("Nosort"+list);
        //排序
        Collections.sort(list);
        System.out.println("sort"+list);
        //二分查找,查找前要排序
        System.out.println(Collections.binarySearch(list,50));
        System.out.println(Collections.binarySearch(list,500));
        //最大值
        System.out.println(Collections.max(list));
        //反转
        Collections.reverse(list);
        System.out.println(list);
        //随机放置,跟洗牌一个意思,每次的顺序都不一样,每个元素在某个位置的概率相同
        Collections.shuffle(list);
        System.out.println(list);

    }
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值