Collection:单列集合,存储的数据都是以单个值进行
Map:双列集合,存储的值都是成对的(key和value),key是存储于一个set集合中的(可以保证key唯一,无序) value是允许重复值出现
Entry键值对对象
//创建Map对象
HashMap map = new HashMap();
//添加数据
map.put("one","zhangsan");
map.put("one","lisi");//出现重复赋值时,最后的会产生覆盖效果
map.put("two",new User("zhangsan", "zs123"));
map.put("three","lisi");
// //获取数据
// Object obj1 = map.get("one");
// System.out.println(obj1);
// //获取map集合中的键值对个数
// System.out.println(map.size());
// //判断key是否存在
// System.out.println("是否存在指定key:"+map.containsKey("one"));
// //判断map中是否存在一个或多个指定值
// System.out.println("是否存在指定value:"+map.containsValue("lisi"));
// //map是无法直接进行遍历的,只能先遍历key,然后通过key获取对应的value
// //获取map中的key集合(set集合)
// Set keySet = map.keySet();
// System.out.println("集合中的值");
// for(Object key : keySet) {
// System.out.println(key+":"+map.get(key));
// }
// //删除值
// Object removeObj = map.remove("one");
// System.out.println("被删除的值:"+removeObj);
// Set keySet1 = map.keySet();
// System.out.println("删除后集合中的值");
// for(Object key : keySet1) {
// System.out.println(key+":"+map.get(key));
// }
// HashMap<String,String> map = new HashMap<String, String>();
// map.put("one","zhangsan");
// map.put("two","lisi");
//通过Entry遍历
Set<Entry<String,Object>> entrySet = map.entrySet();
Iterator<Entry<String,Object>> iterator = entrySet.iterator();
while(iterator.hasNext()) {
Entry<String,Object> entry = iterator.next();
System.out.println(entry.getKey()+":"+entry.getValue());
}
~
List:ArrayList LinkedList
Set:HashSet
Map:HashMap
普通的集合存储数据都会对数据自动向上转型,也就是说拿出的数据都为Object,但是在实际应用中,经常都会遇到需要对拿出的数据进行向下转型(比如:存储int值,获取后需要运算,存储自定义对象,获取后需要调用对象的某些方法或属性)
在实际开发中一般都是使用一种集合存储一种类型值
泛型:参数化类型
泛型集合:有明确数据类型限制的集合(存储数据长度可变,但是普通集合类型没有限制)
在创建集合时就定义该集合可以存储的数据类型,那么在获取数据时,自然获取到的数据就是该类型,不需要才对其进行向下转型,常见的泛型标识有:T,K,V,……,定义语法:<标识符>,如
泛型的List集合定义语法:
ArrayList<限制类型> 变量名 = new
ArrayList<限制类型>();
LinkedList<限制类型> 变量名 = new LinkedList<限制类型>();
泛型的Map集合定义语法:
HashMap<key限制类型,value限制类型> 变量名 = new HashMap<key限制类型,value限制类型>();
可变参数:
给方法定义参数的语法:数据类型
参数名1, 数据类型
参数名2,…….
定义可变参数语法:
数据类型… 参数名
注意:在多种数据类型的参数中使用可变参数,那么可变参数只能是最后一个
工具类:
Collections:集合工具类,用于对集合进行操作
Arrays:数组工具类,用于对数组进行操作
Collections. synchronizedXXX(集合对象):返回线程安全(同步)的集合