Util类简单介绍

Util类简单介绍_第1张图片集合简单介绍
一. Set集合
1.不包含重复元素、无序的元素集合 且存和取顺序不一致 无索引
2.Set集合的实现类有HashSet和LinkedHashSet Set接口继承于Collection接口
3.Set集合中没有get()方法 只有add(Element e)方法 没有add(key,Element)方法
4. 如:HashSet mySet=new HashSet();
mySet.add(“aa”);
mySet.add(“aa”);
mySet.add(“aa”);
mySet.add(“dd”); 输出 dd aa ;
5.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)
4.如:List list=new ArrayList();
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
3.HashMap map = new HashMap();
map.put(“test”, 1);
map.put(“test1”, 2);
map.put(“test2”, 1);
map.put(“test2”, 3); //当key相等 value不同 会覆盖
//第一种方法 Hashtable 和HashMap 方法类似
//获取map中的key 返回map中所包含的键
Set keys=map.keySet();
for(String str: keys){
System.out.println(str+" “+map.get(str)); //获得key对应的value
}
//第二种方法
//得到map实例中所有的value,返回值类型为Collection
Collection values=map.values();
for(Integer value: values){
System.out.println(value+” “); //获得key对应的value
}
//第三种方法
//回 Map中所包含映射的 Set视图。 Set 中的每个元素都是一个 Map.Entry对象,
//可以使用 getKey()和 getValue()方法(还有一个 setValue()方法)访问后者的键元素和值元素
Set> entrySet = map.entrySet();
Iterator> iterator = entrySet.iterator();
while(iterator.hasNext()){
Entry next = iterator.next();
next.setValue(10);
System.out.println( next.getKey()+” "+next.getValue());
}
备注:集合中只能存放对象 引用类型 ,不能存基本类型
集合分为存储 value 和key-value两种
存储value的有List、Set 。 存储key-value 的为Map

你可能感兴趣的:(Util类)