首页 > 其他 > 详细

集合详解

时间:2021-07-18 12:58:48      阅读:33      评论:0      收藏:0      [点我收藏+]

1.HashSet

import java.util.HashSet;
//HashSet类   实现了set接口  无序但唯一
public class Demo01 {

    public static void main(String[] args) {
        boolean r;
        HashSet<String>s = new HashSet<String>();
        r = s.add("Hello");
        System.out.println(r);
        r = s.add("world");
        System.out.println(r);
        r = s.add("Hello");
        System.out.println(r);
        r = s.add("hello");
        System.out.println(r);
        int a = s.size();
        System.out.println(a);
        for (String s1 : s) {
            System.out.println(s1);
        }
Iterator it = s.iterator();
while (it.hasNext()){
System.out.println(it.next());
}

} }

 不能包含重复元素

技术分享图片
import java.util.HashSet;
import java.util.Iterator;

//HashSet类   实现了set接口  无序但唯一
public class Demo01 {

    public static void main(String[] args) {
        long startTime = System.currentTimeMillis();
        boolean r;
        HashSet<String>s = new HashSet<String>();
        r = s.add("Hello");
        System.out.println(r);
        r = s.add("world");
        System.out.println(r);
        r = s.add("Hello");
        System.out.println(r);
        r = s.add("hello");
        System.out.println(r);
        int a = s.size();
        System.out.println(a);
        for (String s1 : s) {
            System.out.println(s1);
        }
        Iterator it = s.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }
        long endTime = System.currentTimeMillis();
        System.out.println("所需时间为:" + (endTime-startTime) + "ms");
    }
}
HashSet类所需时间
技术分享图片
import java.util.Iterator;
import java.util.TreeSet;

//TreeSet
public class Demo02 {
    public static void main(String[] args) {
        long startTime = System.currentTimeMillis();
        boolean r;
        TreeSet<String> s = new TreeSet<String>();
        r = s.add("Hello");
        System.out.println(r);
        r = s.add("world");
        System.out.println(r);
        r = s.add("Hello");
        System.out.println(r);
        r = s.add("hello");
        System.out.println(r);
        for (String s1 : s) {
            System.out.println(s1);
        }
        Iterator it = s.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }
        long endTime = System.currentTimeMillis();
        System.out.println("所需时间为:" + (endTime-startTime) + "ms");
    }
}
TreeSet类所需时间

第一个所用时间为1ms

第二个所用时间为2ms

所以TreeSet操作要比HashSet慢

TreeSet是SortedSet接口的实现类,它使用红黑树存储元素排序,基于元素的值对元素排序。

HashMap类

//HashMap类  输出的键—值对顺序和放入的顺序并不一定保持一致  key可以是null
技术分享图片
import java.util.Map;
//HashMap类  输出的键—值对顺序和放入的顺序并不一定保持一致  key可以是null
public class HashMap {
    public static void main(String[] args) {
        Map<String,String> all = new java.util.HashMap<String, String>();
        all.put("BJ","beijing");
        all.put("zz","zhengzhou");
        all.put(null,"null");
        String value = all.get("BJ");//根据key查询出value
        System.out.println(value);
        System.out.println(all.get("zz"));
        System.out.println(all.get(null));
        System.out.println(all);
    }
}
HashMap类

TreeMap类

//TreeMap类 结果按键的字母顺序进行排序
技术分享图片
import java.util.Map;
//HashMap类  输出的键—值对顺序和放入的顺序并不一定保持一致  key可以是null
public class HashMap {
    public static void main(String[] args) {
        Map<String,String> all = new java.util.HashMap<String, String>();
        all.put("BJ","beijing");
        all.put("zz","zhengzhou");
        all.put(null,"null");
        String value = all.get("BJ");//根据key查询出value
        System.out.println(value);
        System.out.println(all.get("zz"));
        System.out.println(all.get(null));
        System.out.println(all);
    }
}
TreeMap类

keySet遍历

//使用keySet遍历Map集合中的元素
技术分享图片
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

//使用keySet遍历Map集合中的元素
public class Demo05 {
    public static void main(String[] args) {
        Map<String,String> all = new HashMap<String, String>();
        all.put("BJ","beijing");
        all.put("zz","zhengzhou");
        all.put(null,"null");
        Set<String> set = all.keySet();
        Iterator<String> iter = set.iterator();
        while (iter.hasNext()){
            String key = iter.next();
            System.out.println(key + "-->" + all.get(key));
        }
    }
}
keySet

Map.Entry:

使用Map.Entary来获取Map中所有的元素。将Map集合通过entrySet()方法变成Set集合,里面的每一个元素都是Map.Entry的实例;利用Set接口中提供的iterator()方法将Iterator接口实例化;通过迭代,利用Map.Entry接口完成key与value的分离。

技术分享图片
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

//使用Map.Entry来获取Map中所有的元素
public class Demo06 {
    public static void main(String[] args) {
        Map<String,String> all = new HashMap<String, String>();
        all.put("BJ","beijing");
        all.put("zz","zhengzhou");
        all.put(null,"null");
        Set<Map.Entry<String,String>> set = all.entrySet();
        Iterator<Map.Entry<String,String>> iterator = set.iterator();
        while (iterator.hasNext()){
            Map.Entry<String,String> me = iterator.next();
            System.out.println(me.getKey() + "-->" + me.getValue());
        }
    }
}
Map.Entry

泛型

原形态:

list myIntList = new LinkedList();

myIntList.add(new Integer(0));

Integer x = (Integer) myIntList.iterator().next();

标识集合中应该存放的数据类型

eg:

list<Integer> myIntList = new LinkedList<Integer>();

myIntList.add(new Integer(0));

Integer x = myIntList.iterator().next();

List是一个带有一个类型参数的泛型接口

在创建对象时也需要指定类型参数

new LinkedList<Integer>();

集合详解

原文:https://www.cnblogs.com/1764782550-rzs/p/15025911.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!