一、Map
该集合存储键值对。一对一往里存。而且要保证唯一性。Map有三个子集如下:
Map
|--Hashtable:底层是哈希表数据结构,不可以存入null键和null值。该集合是线程同步的jdk1.0 效率比较低
|--HashMap:底层是哈希表数据结构,允许使用null键和null值,该集合是不同步的将Hashtable替代 jdk1.2 效率高
|--TreeMap:底导是二叉树数据结构。线程不同步,可以用于给Map集合中的建进行排序
Map集和Set集很像,其实,Set底层就是使用了Map集合。所具有方法如下,和Set类似。
1.添加
put(Kkey, V valu)
putAll(Map<?extends K,? extends V> m)
2.删除
clear()
rmove(Objectkey)
3.判断
containsValue(Objectvalue)
containsKey(Objectkey)
isEmpty()
4.获取
get(Objectkey)
size()
values()
Map所特有的方法有两种取出方式:Map集合的取出原理:将map集合转成Set集合,在通过迭代器取出。
1.Set<key> keySet:将Map中所有的键存入到Set集合。因为Set具备迭代器。
所有可以迭代方式取出所有的键,在根据get方法。获取每一个对应的值。
2. Set<map.Entry> entrySet:将Map集合中的映射关系存入到Set集合中,而这个关系的数据类型就是Map.Entry
第一种取出试代码实例如下:
import java.util.*;
class MapDemo2
{
public static void main(String[] args)
{
Map<String,String> map = new HashMap<String,String>();
map.put("02","zhangsan2");
map.put("03","zhangsan3");
map.put("04","zhangsan4");
map.put("05","zhangsan5");
//先获取Map集合的所有键的Set集合.keySet()
Set<String> keySet = map.keySet();
//有了Set集合,就可以获取其迭代器。
Iterator<String> it = keySet.iterator();
while (it.hasNext())
{
String key = it.next();
//有了键可以通map集合的get方法获取对其对应的值。
String value = map.get(key);
System.out.println("key:"+key+" value:"+value);
}
}
}
第二种取出试代码实例如下:
import java.util.*;
class MapDemo3
{
public static void main(String[] args)
{
Map<String,String> map = new HashMap<String,String>();
map.put("02","zhangsan2");
map.put("03","zhangsan3");
map.put("04","zhangsan4");
map.put("05","zhangsan5");
Set<Map.Entry<String,String>> entrySet = map.entrySet();//特别注意:entrySet()方法为Map内部接口EntrySet中的静态方法
Iterator<Map.Entry<String,String>> it = entrySet.iterator();
while (it.hasNext())
{
Map.Entry<String,String> me = it.next();
String key = me.getKey();
String value = me.getValue();
System.out.println(key+":"+value);
}
}
}
Entry其实就是一个内部接口,它是Map接口中一个内部接口。
二、Arrays
Arrays:用于操作数组的工具类。
里面都是静态方法。
asList:将数组变成list集合
把数组变成集合有什么好处?可以使用集合的思想和方法来操作数组中的元素。不过要注意:将数组变成集合,不可以使用集合的增删方法。因为数组的长度是固定的。
代码实例如下:
import java.util.*;
class ArraysDemo
{
public static void main(String[] args)
{
//int[] arr ={2,4,5};
//System.out.println(Arrays.toString(arr));
String[] arr = {"abc","cc","kkk"};
List<String> list = Arrays.asList(arr);
//sop("contains:"+list.contains("cc"));
//list.add("qq");//UnsupportedOperationException
//int[] nums = {2,4,5};
Integer[] nums = {2,4,5};
List<Integer> li = Arrays.asList(nums);
/*
如果数组中的元素都是对象,那么变成集合时,数组中的元素直接集合中的元素
如果数组中的元素是基本数据类型,那么会将数组作为集合的元素存在。
*/
sop(li);
}
public static boolean myContains(String[] arr,String key)
{
for (int x=0;x<arr.length ;x++ )
{
if(arr[x].equals(key))
return true;
}
return false;
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}