JAVA之jdk5简单介绍

本文深入探讨了Java5引入的重要特性,包括foreach循环、静态导入方法、可变参数、数组转集合的功能及其实现方式。此外,还详细比较了不同遍历方式在进行删除操作时的行为差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

咳咳
尽管2018年 已经是java11代了
不过身为程序员 原来老版本的一些特性我也介绍一下(笔记参考)

JDK5的新特性
1.foreach
2.静态导入方法(开发基本不用。。算是废了 能看懂就行)
import static 包名.类名.方法名
3.可变参数 ( 方法
4.数组转集合( Arrays.asList(
5.自动拆箱 装箱

下面分别来讲解

foreach

增强for循环
底层是由Iterator 迭代器实现 !!

import java.util.ArrayList;

public class Main{
	public static void main(String[] args) {
		int arr[] = {1,2,3,4};
		for (int i : arr) {
			System.out.println(i);
		}
		ArrayList<String> list = new ArrayList<>();
		list.add("a");
		list.add("b");
		list.add("c");
		list.add("d");
		//fore+alt+/ 快速生成增强for循环
		//其寻找的是最近的数组 后者集合(统称容器
		for (String string : list) {
			System.out.println(string);
		}
	}
}

三种遍历 进行删除操作时的情况
普通for循环删除
迭代器删除
foreach删除

import java.util.ArrayList;
import java.util.Iterator;

public class Main{
	public static void main(String[] args) {
		ArrayList<String> list = new ArrayList<>();
		list.add("a");
		list.add("b");
		list.add("b");
		list.add("c");
		list.add("d");
		
		//普通for循环删除
		/*for(int i=0;i<list.size();i++) {
			if("b".equals(list.get(i))) {
				list.remove(i--);
			}
		}
		System.out.println(list);*/
		//迭代器删除      要避免出现并发修改异常    所以只能用迭代器自身的删除功能
		/*Iterator<String> it = list.iterator();
		while(it.hasNext()) {
			if("b".equals(it.next())) {
				it.remove();     
			}
		}*/
		//迭代器删除的另一种形式
		for(Iterator<String> it2 = list.iterator() ; it2.hasNext();) {
			if("b".equals(it2.next())) {
				it2.remove();     
			}
		}
		System.out.println(list);
		
		//3,增强for循环,增强for循环不能删除,只能遍历
		for (String string : list) {
			if("b".equals(string)) {
				list.remove("b");
			}
		}
		System.out.println(list);
	}
}

可变参数

public class Demo3_ChangeableArgs {

	/**
	 * * A:可变参数概述
			* 定义方法的时候不知道该定义多少个参数
		* B:格式
			* 修饰符 返回值类型 方法名(数据类型…  变量名){}
		* C:注意事项:
			* 这里的变量其实是一个数组
			* 如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个
	 */
	public static void main(String[] args) {
		int[] arr = {11,22,33,44,55};
		//print(arr);
		print(11,22,33,44,55);
		System.out.println("---------------");
		//print();
	}
	
	/*public static void print(int[] arr) {
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}*/
	
	
	public static void print(int ... arr) {			//可变参数其实是一个数组
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}
}

数组转集合以及集合转数组

package com.heima.jdk5;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Demo4_AsList {

	/**
	 * 数组转换成集合
	 * 数组转换成集合虽然不能增加或减少元素,但是可以用集合的思想操作数组,也就是说可以使用其他集合中的方法
	 */
	public static void main(String[] args) {
		//demo1();
		//demo2();
		//集合转数组,加泛型的
		ArrayList<String> list = new ArrayList<>();
		list.add("a");
		list.add("b");
		list.add("c");
		list.add("d");
		
		String[] arr = list.toArray(new String[10]);		//当集合转换数组时,数组长度如果是小于等于集合的size时,转换后的数组长度等于集合的size
															//如果数组的长度大于了size,分配的数组长度就和你指定的长度一样
		for (String string : arr) {
			System.out.println(string);
		}
	}

	public static void demo2() {
		//int[] arr = {11,22,33,44,55};			
		//List<int[]> list = Arrays.asList(arr);			基本数据类型的数组转换成集合,会将整个数组当作一个对象转换
		//System.out.println(list);
		Integer[] arr = {11,22,33,44,55};					//将数组转换成集合,数组必须是引用数据类型
		List<Integer> list = Arrays.asList(arr);
		System.out.println(list);
	}

	public static void demo1() {
		String[] arr = {"a","b","c"};
		List<String> list = Arrays.asList(arr);				//将数组转换成集合
		//list.add("d");									//不能添加
		System.out.println(list);
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑瞳丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值