集合(3)

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(集合对象):返回线程安全(同步)的集合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值