Util类简单介绍

在这里插入图片描述集合简单介绍

Set集合

  1. 不包含重复元素、无序的元素集合 且存和取顺序不一致 无索引\
  2. Set集合的实现类有HashSet和LinkedHashSet Set接口继承于Collection接口
  3. Set集合中没有get()方法 只有add(Element e)方法 没有add(key,Element)方法
HashSet<String> mySet=new HashSet<String>();
mySet.add("aa");
mySet.add("aa");
mySet.add("aa");
mySet.add("dd");  //输出 dd  aa  ;

HashSet的实现原理
往HashSet添加元素时,HashSet会先调用hashCode方法的方法元素的哈希值,通过元素的哈希值经过移位等元素就可以算出该元素在哈希表中的存储位置

  • 情况1:当前元素存储位置目前没有任何元素存储,将该元素直接存储到此位置
  • 情况2:如果该元素的存储位置已经有其他元素,那么会调用该元素equals方法与该位置的元素再比较一次
    如果返回true,则认为该元素为重复元素,添加失败。如果为false 那么该元素运行添加。

List集合

  1. 包含重复元素、有序 存和取顺序一致 有索引
  2. List集合的实现类 ArrayList LinkedList List接口继承于Collection接口
  3. 有add(Element e) add(index,Element e) 方法 和get(index)
List<String> list=new ArrayList<String>();
				list.add(0,"aa");  //索引必须从0开始  因此list还没有元素size=0
				list.add(1,"bb");
				list.add(2,"aa");
			for(String str:list) {
				System.out.println( str );
			}
			输出:aa bb aa

Map集合

  1. Map集合用于存储元素对,Map存储的是一对键值(key-value) 通过key映射到value
  2. 实现类有Hashtable、HashMap
  • Hashtable是同步的 保证了Hashtable里面的对象是线程安全的 不可以存入空值null key和value均不能为null
  • HashMap是异步的 HashMap里面的对象不是线程安全 最多一条key为null(否则会覆盖) 但允许多条value为null
 HashMap<String,Integer> map = new HashMap<String,Integer>();   
				map.put("test", 1);
				map.put("test1", 2);
				map.put("test2", 1);
				map.put("test2", 3);    //当key相等  value不同   会覆盖
				//第一种方法   Hashtable 和HashMap 方法类似
				//获取map中的key   返回map中所包含的键
				Set<String> keys=map.keySet();
				for(String str: keys){
					System.out.println(str+" "+map.get(str));   //获得key对应的value
				}
				//第二种方法
				//得到map实例中所有的value,返回值类型为Collection
				Collection<Integer> values=map.values();
				for(Integer value: values){
					System.out.println(value+" ");   //获得key对应的value
				}
				//第三种方法
				//回 Map中所包含映射的 Set视图。 Set 中的每个元素都是一个 Map.Entry对象,
				//可以使用 getKey()和 getValue()方法(还有一个 setValue()方法)访问后者的键元素和值元素
				Set<Entry<String, Integer>> entrySet = map.entrySet();
				Iterator<Entry<String, Integer>> iterator = entrySet.iterator();
				while(iterator.hasNext()){
					Entry<String, Integer> next = iterator.next();
					next.setValue(10);
					System.out.println( next.getKey()+"  "+next.getValue());
				}  
备注:集合中只能存放对象 引用类型 ,不能存基本类型
集合分为存储 value  和key-value两种
存储value的有List、Set 。   存储key-value 的为Map
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值