需求1:现在有20各学生。用student 描述,创建Strudent 对象
既然对象有很多那么一定要先存储对象————存储数据的容器 数组和 StringBuffer()
因为要对每个学生(每个元素)操作就必须保证每个元素是独立的,所以要使用 数组
Student[] strs = new Student[20];**重点内容**
需求2.来了一个新学员
此时原来的容器就用不了了,因为数组的的长度是不变的
解决办法:创建一个可变数组:创建一个新的长度更长的数组,将原来的元素复制到新数组中——这个太过麻烦
Java中提供了解决问题的对象————————集合(存储数据)
集合的使用情况:当数据多了需要存储,需要容器。而数据的个数不确定,无法使用数组,这个时候Java就提供了另一个容器—-集合
集合和数组的区别:
数组的长度是确定的//集合的长度是可变的
数组中存储的是同一类元素,可以存储基本数据类型/////集合存储的是对象,而且对象的类型可以不一致
什么时候使用集合这个容器:当对象多的时候,先进行存储
集合框架:
根据需求的不同,数据存储需求的不同,出现了集合框架,因为生成了各种的集合。这些集合是怎么区分的:
区分的方式:每个容器的数据结构(数据存储的一种方式)不同
有共性的容器都可以不断向上抽取——————形成(体系)集合框架
在顶层的容器——Collection()这是一个接口
学习Collection()接口(在这里面定义了体系中最共性的功能)
public interface Collection
extends Iterable集合层次结构中的根界面 。 集合表示一组被称为其元素的对象。 一些集合允许重复元素,而其他集合不允许(集合的数据结构不同)。 有些被命令和其他无序。 JDK**不提供此接口的任何直接实现**:它提供了更具体的子接口的实现
一个容器最基本的功能:添加 删除
简单应用:
package Collection;
//运用集合
import java.util.*;
public class CollectionDemo1 {
public static void main(String[] args){
Collection coll = new ArrayList();//**通过Collection 的实现类的子类,创建对象**
collectionAdd(coll);
}
public static void collectionAdd(Collection coll){
//向集合中加入元素 add(Object)
coll.add("abcd1");
coll.add("abcd2");
coll.add("abcd3");
//打印一下集合
System.out.println(coll);
}
}
Conllection 是一个接口,创建集合对象只能通过它的子类来创建,至于是哪一个并不是很重要。
基本方法:
boolean add(E e) 确保此集合包含指定的元素(可选操作)。
void clear() 从此集合中删除所有元素(可选操作)。
boolean contains(Object o) 如果此集合包含指定的元素,则返回 true 。
boolean equals(Object o) 将指定的对象与此集合进行比较以获得相等性。
int hashCode() 返回此集合的哈希码值。
boolean isEmpty() 如果此集合不包含元素,则返回 true 。
boolean remove(Object o) 从该集合中删除指定元素的单个实例(如果存在)
Object[] toArray() 返回一个包含此集合中所有元素的数组。
int size() 返回此集合中的元素数。
boolean addAll(Collection
package Collection;
//运用集合
import java.util.*;
public class CollectionDemo1 {
public static void main(String[] args){
Collection coll = new ArrayList();//通过Collection 的实现类的子类,创建对象
collectionDemo1(coll);//演示Colletion 中的一般方法
Collection coll1 = new ArrayList();
Collection coll2 = new ArrayList();
collectionDemo2( coll1, coll2);
}
//解析带有 All 的方法
public static void collectionDemo2(Collection coll1,Collection coll2){
coll1.add("qwe1");
coll2.add("qwe2");
//将2 中的元素全部加到1中
//带All 的函数,要比较的是两个集合中的所有的元素 是否符合判断
coll1.addAll(coll2);
System.out.println("coll1= " +coll1+"coll2 = "+coll2);
}
//解析一般方法
public static void collectionDemo1(Collection coll){
//向集合中加入元素 add(Object)
coll.add("abcd1");
coll.add("abcd2");
coll.add("abcd3");
//删除集合中的对象
coll.remove("abcd1");
//判断是否包含
System.out.println(coll.contains("abcd1"));
System.out.println(coll.contains("abcd2"));
//打印一下集合
System.out.println(coll);
}
}
总结一下:
Java中的容器
1.数组:长度有限并且一定,具备长度和元素的下标
2.StringBuffer() /StringBuilder() : (字符串缓冲区)里面可以存储各种的数据(数量不定)但是最后都会变成字符串来存储
这两个是类,有可以存储数据同时还提供了各种对数据操作的方法(增删改查。。。)
3.集合:存储的是对象,也提供了各种操作的方法(增删)
到此的学习:
String ————> StringBuffer / StringBuilder ——————>基本数据包装类(Integer) ——————>集合