【一周搞定JAVA】之集合(一)

一.Collector集合(增删改查)

1.集合和数组

A.数组:存放任意类型,长度不可变
B.集合:存放对象,长度可变

2.集合的简单框架

Java一对多去重 java一对多集合_迭代器

首先要介绍的是Collection单列集合,以及它下面的子类。如上图所示,Collection接口是单列集合的父类,具有所有单列集合的共同特性。图中标色了的为常用集合。(图片楼主绘制不易,请见谅!)

3.集合的增删改查

A.增------->
           public boolean add(E)
           
       B.删------->
           public void clear()
           public boolean remove(E)
           
       C.改------->
           public Object[] toArray()
           public T[] toArray(<T>)
           
       D.查------->
           public int size()
           public boolean isEmpty()


二.遍历方法

1.Iterator迭代器的使用

A.Iterator()方法是Collector集合中的实现类接口,------->Iterator iter=c.iterator()
		B.iter.hasNext(); //是否存在下一个元素
		C.E  e = iter.next(); //获取下一个元素
1.1 .使用迭代器时的快捷方式(使用IDEA可以加快开发速度)
A.c.iterator.var;------>创建调用迭代器
		B.itit-------->while遍历
		注:这个快捷方式是IDEA的。
1.2 .迭代器遍历的示例代码
public static void main(String[] args) {
         	// 使用多态方式 创建对象
         	Collection<String> coll = new ArrayList<String>();
         	// 添加元素到集合
         	coll.add("串串星人");
         	coll.add("吐槽星人");
         	coll.add("汪星人");
         	//遍历
         	//使用迭代器 遍历 每个集合对象都有自己的迭代器
         	Iterator<String> it = coll.iterator();
         	// 泛型指的是 迭代出 元素的数据类型
         	while(it.hasNext()){ //判断是否有迭代元素
         		String s = it.next();//获取迭代出的元素
         		System.out.println(s);
         	}
         }

2.for增强(遍历)

2.1 .foreach遍历数组和集合
for(数据类型 变量:数组名/集合名){
            System.out.println(变量);
		}
	 注:将数组和集合从索引0开始,依次将元素给变量,然后再执行循环语句。
2.2 .示例代码:
public static void main(String[] args) {
		int[] arr = {3,5,6,87};
		//使用增强for遍历数组
		for(int a : arr){//a代表数组中的每个元素
		System.out.println(a);
		}
	}

第三章 泛型

1、泛型的好处

A.提前检查(运行时可能出现的类型转换异常,提前到编译时是否通过)
B.简洁代码(不需要手动向下转型,快捷键直接提示出来类型)

2、泛型应用场景

A.泛型类
	a.定义格式:
		修饰符 class 类名称<泛型>{ }   //定义未知不具体类型
	b.使用格式:(创建对象)
		类名称<具体类型> 对象名称 = new 类名称<具体类型>(); //使用已知具体类型
		
B.泛型方法
	a.定义格式:
		修饰符 <泛型> 返回值  方法名称 (参数){ 方法体; return 返回值; }  //定义未知不具体类型
	b.使用格式:(调用方法)
		具体返回值类型  返回值 = 方法名称(具体参数);  //使用已知具体类型

C.泛型接口
	a.定义格式:
		修饰符 interface 接口名称<泛型>{ }
	b.使用格式:(实现类或者创建实现类对象时候)
		第一种:修饰符 class 类名称 implements 接口名称<具体类型>{ }   //使用已知具体类型
		第二种:类名称<具体类型> 对象名称 = new 类名称<具体类型>(); //使用已知具体类型

D.泛型通配符
	a.含义: 
		不知道使用什么数据类型的时候,泛型可以使用 ? 
	b.格式:
		Collection<?>  可以传递各种泛型类型的对象 
		例如: 这些都可以传递 Collection<Object> Collection<String> Collection<Integer> 
	c.高级使用: (Number是Integer的父类)
		Collection<? extends Number> 只能接收 Number类型以及子类类型. (专业术语"泛型的上限")
		Collection<? super Number> 只能接收 Number类型以及父类类型. (专业术语"泛型的下限")