集合遍历方式和新特性泛型

                1、jdk5.0新特性
			-泛型、枚举、静态导入、自动拆箱、增强for、可变参数、反射
		
		2、泛型
			-为什么要使用泛型?一般使用在集合上,为了让集合存储的内容为指定的类型,而不是失去本身类型,发生了类型转换,这个时候就是泛型的应用场景。
			
			-泛型语法: 
				--集合<类型> 集合名称 = new 集合<类型>(){};
				--例:List<String> li = new List<String>(){};

                        -在泛型里面写是一个对象,不能写基本数据类型
				byte    -   Byte
				short   -   Short
				int     -   Integer
				long    -   Long
				float   -   Float
				double  -   Double
				char    -   Character
				boolean -   Boolean

				-如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转换成集合中的元素
				
				-如果数组中的元素都是基本数据类型,那么变成集合时,那么会将该数组作为集合中的元素存在
			
			-泛型擦除
				--首先泛型只是出现在源代码阶段,当编译之后泛型就不存在了
						public static <T> void arrReverse(T[] arr)
						{
							T t;
							for(int i=0 ; i<arr.length/2 ; i++)
							{
								t = arr[i];
								arr[i] = arr[arr.length-i-1];
								arr[arr.length-i-1] = t;		
							}
							System.out.println(Arrays.toString(arr));
						}
			-list集合遍历三种方法
				//普通for
				for(int i=0;i<list.size();i++)
				{
					Integer integer = list.get(i);
					System.out.println(integer);
				}
				//-----------------------------------
				//增强for
				for (Integer integer : list) {
					System.out.println(integer);
				}
				//-----------------------------------
				//迭代器
				Iterator it = list.iterator();
				while(it.hasNext())
				{
					System.out.println(it.next());
				}
			-ArrayList LinkedList Vector三者区别
			
			-set集合遍历两种方式
				/遍历set有两种方式
				//增强for
				for (String string : set) {
					System.out.println(string);
				}
				//迭代器
				Iterator it = set.iterator();
				while(it.hasNext())
				{
					System.out.println(it.next());
				}

			-map集合遍两种方式
				//遍历map两种方式
				//1、获取所有key,通过key得到value,使用get方法
				//2、获取key和value关系
				//方法一
				//获取所有key
				Set<String> sets = map.keySet();
				//遍历所有key
				for (String key : sets) {
					//通过key得到value
					String value = map.get(key);
					System.out.println(key+":"+value);
				}
				//方法二
				//得到key和value关系
				Set<Entry<String, String>> entrySet = map.entrySet();
				//遍历
				for (Entry<String, String> entry : entrySet) {
					//entry是key和value关系
					String key = entry.getKey();
					String value = entry.getValue();
					System.out.println(key+":"+value);
				}

                3、泛型使用在方法上(重点)
			/*
			 * 使用泛型方法 需要定义一个类型,使用大写字母 T:这个T表示任意的类型
			 * 写在返回值之前void之前<T>
                         * 例:swap方法
			 */
				public static <T> void swap(T[] arr ,int i, int j)
				{
					T temp = arr[i];
					arr[i]=arr[j];
					arr[j] =temp;
				}
		
		4、泛型用在类上使用(了解)
			*一个类上定义一个类型,这个类就可以直接使用这个类型

			*类名<T>

			*在类上面定义的泛型不能在静态方法使用,需要使用泛型,重新定义

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值