一、Collection接口
1、定义的是所有单列集合中共性的方法
2、所有的单列集合都可以使用共性的方法
3、没有带索引的方法
二、List接口
1、有序的集合(存储和取出元素顺序相同)
2、允许存储重复的元素
3、有索引,可以使用普通的for循环遍历
三、Set接口
1、不允许存储重复的元素
2、没有索引(不能使用普通for循环遍历)
四、代码练习
第一个包:
1、
package demo01;
import java.util.ArrayList;
import java.util.Collection;
public class Demo01Collection {
public static void main(String[] args) {
Collection<String> coll=new ArrayList<>();//体现了多态
System.out.println(coll);
boolean b1=coll.add("张三");
System.out.println(b1);
System.out.println(coll);
coll.add("李四");
coll.add("李四");
coll.add("王五");
coll.add("赵六");
System.out.println(coll);
boolean b2=coll.remove("王五");
System.out.println(b2);
System.out.println(coll);
boolean b3=coll.remove("赵六");
System.out.println(b3);
System.out.println(coll);
boolean b4=coll.contains("王五");
System.out.println(b4);
boolean b5=coll.isEmpty();
System.out.println(b5);
int b6=coll.size();
System.out.println(b6);
Object[] arr=coll.toArray();
//for(int i=0;i<arr.length;i++)
//{
System.out.println(arr[0]);
//}
System.out.println("============");
coll.clear();
System.out.println(coll);
b5=coll.isEmpty();
System.out.println(b5);
}
}
2、
package demo01;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Demo02Iterator {
public static void main(String[] args) {
Collection<String> coll=new ArrayList<>();
coll.add("姚明");
coll.add("科比");
coll.add("麦迪");
coll.add("布莱特");
coll.add("詹姆斯");
coll.add("艾弗森");
Iterator<String> it=coll.iterator();
if(it.hasNext()) {
String e=it.next();
System.out.println(e);
}
if(it.hasNext()) {
String e=it.next();
System.out.println(e);
}
System.out.println("=========================");
while(it.hasNext()) {
String e=it.next();
System.out.println(e);
}
System.out.println("=========================");
for(Iterator<String> it2=coll.iterator();it2.hasNext();) {
String e=it2.next();
System.out.println(e);
}
System.out.println("=======第三次========");
//增强型for循环
for(String s:coll) {
System.out.println(s);
}
System.out.println("=======第四次=======");
int[] arr1= {45,6,7,8,9,10};
for(int i=0;i<arr1.length;i++)
{
System.out.println(i);
}
for(String i:coll) {
System.out.println(i);
}
}
}
第二个包:
1、
package demo02;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo01Exception {
public static void main(String[] agrs) {
//编译期异常
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");//编译异常
Date date=null;
try {
date=sdf.parse("2021-05-11");
} catch (ParseException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
System.out.println("第一句测试");
System.out.println(date);
//runtimeException 运行期异常
int[] arr= {1,2,3};
System.out.println(arr[0]);
//有问题,但是不会提示,因为能够编译通过,在执行的时候才会有异常
System.out.println(arr[3]);
try {
System.out.println(arr[3]);
}catch(Exception e) {
System.out.println("第二句测试");
System.out.println(e);
}
//错误
int[] arr2=new int[1024*1024*1024*1024*1024*1024*1024*1024];
System.out.println();
}
}
2、
package demo02;
public class Demo02Throw {
public static void main(String[] args) {
int[] arr=null;
//int[] arr=new int[3];
int e=getElement(arr,3);
System.out.println(e);
}
public static int getElement(int[] arr,int index) {
if(arr==null) {
throw new NullPointerException("传递的数组值是NULL");
}
if(index<0||index>arr.length-1) {
throw new ArrayIndexOutOfBoundsException("传递的索引超出了数组的正常使用");
}
int ele=arr[index];
return ele;
}
}
3、
package demo02;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.file.FileSystemException;
public class Demo03Throws {
public static void main(String[] args) throws Exception{
readFile("c:\\a.txt");
System.out.println("后续代码");
}
public static void readFile(String fileName) throws FileNotFoundException,IOException{
if(!fileName.equals("c:\\a.txt")) {
throw new FileSystemException("传递的文件不是c:\\a.txt");
}
if(!fileName.equals(".txt")) {
throw new IOException("文件后缀名有无");
}
}
}