[四.J2EE]_集合框架3

回顾:

        

1.特点
    无序
        元素添加的顺序与输出的顺序不一致
    唯一
        不允许添加重复元素
        不重写equals方法,默认比较的是Object类型,而Object是引用类型,比较是内存地址
        重写equals+hashcode,先比较hashcode值,再比较equals
            hashcode值相同,则比较equals
            hashcode值不相同,则不比较equals

2.遍历方式
    foreach
    iterator(迭代器)

3.常用实现类
    hashset
        linkhashset
    treeset
        按照某种特定的规则对集合中的元素进行排序(升序和降序)
        java.lang.Comparable
            自然比较接口
        java.util.Comparator
            比较器

 


一.Map:

  1.1 特点:无序、以键值对的形式添加元素,键不能重复,值可以重复
           它没有继承Collection接口
  1.2 遍历
    1.2.1 先取出保存所有键的Set,再遍历Set即可(2种)
    1.2.2 先取出保存所有Entry的Set,再遍历此Set即可

//Map
    //1.特点:
    //1)无序
    //2)以键值对的形式存在,键唯一,值可以重复。
    //3)没有继承collection接口
    
    //问题+解答:键唯一,值被覆盖
    Map<String,Object> map=new HashMap<>();
    map.put("name","zs");
    map.put("sex","man");
    map.put("age",11);
    map.put("score",110);
    map.put("name",121);
    System.out.println(map);
    
    //2.遍历方式
    //2.1获取所有的keys
    
    System.out.println("++++++++");
    //Set:唯一,map.keySet()
    Set<String> keySet = map.keySet();
    for (String string : keySet) {
        System.out.println(string);
    }
    //2.2获取所有的values
    Collection<Object> values = map.values();
    for (Object object : values) {
        System.out.println(object);
    }
    //3)获取所有的键值对 map.entrySet()
    Set<Entry<String, Object>> entrySet = map.entrySet();
    for (Entry<String, Object> entry : entrySet) {
        System.out.println(entry);
    }
    
    //新种:与3 相似 en相当于entry 是名字,任意取
    
    entrySet.forEach(en->{
        System.out.println(en);
    });
    
    

2.HashMap与Hashtable之间的区别(重点)

同步(synchronized)既排队  线程安全的     hashtable
  异步        线程非安全的   hashmap

3. 其它


   3.1 Collections:工具类,提供一组静态方法操作Collection集合
   3.2 Arrays:工具类,提供了一组静态方法操作数组

        匿名内部类

//TreeMap
	//1)按照 Key排序
			//通过Comparator.reverseOrder()让其 键降序排
	
	Map<String,Object> map=new TreeMap<>(Comparator.reverseOrder());
	map.put("zs", 100);
	map.put("ls",123);
	map.put("s", 121);
	System.out.println(map);
	
	//2)按照Value排序
	//获取键值对
	Set<Entry<String, Object>> entrySet = map.entrySet();
	//将键值对转换成List集合
	List<Entry<String,Object>> list=new ArrayList<>(entrySet);
	//使用Collection帮助类进行排序
	
	//Collection和Collectionss的区别
	//Collection :集合框架的父接口
	//Collections:集合框架帮助类
	Collections.sort(list,new Comparator<Entry<String,Object>>(){

		@Override
		public int compare(Entry<String, Object> o1, Entry<String, Object> o2) {
			// TODO Auto-generated method stub
			return o1.getValue().hashCode()-o2.getValue().hashCode();
		}
	});
	//将数组转换成集合
	String str="1,2,3,4,5,6,7";
	String[] split = str.split(",");
	List<String> asList = Arrays.asList(str);
	
	System.out.println(asList);
	
	String s=Arrays.toString(split);
	System.out.println(s);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值