※ 数组特点:
1)存储的是同一类的数据,长度不可变;
2)没有直接操作数据的方法:
//声明数组方式一
Student[] s=new Student[10];
//Object的方法都能继承
//不能用s[0].方法名
s.getClass();
s[0]=new Student();
Syso{s[0]}
//声明数组方式二
Student []s1={};
//声明数组方式三
Student []s2=new Student[]{};
辅助类:java.util.Arrays->提供显示元素,排序,查询是否存在元素。。。方法
class StudentCourse{
private Student[]s=new Student[10];
//统计存储了多少个学生
private int count=1;
public void add(Student s){
//数组扩容
if(count>s.length){
//扩容两倍
Student[]s1=new Student[s.length*2];
System.arraycopy(S,0,s1,0,s.length);
//将s地址值赋给s1
s=s1;
}
s[count-1]=s;
count++;
}
}
※ 集合
特点:(相对于数组)
1)在不指名类型的前提下存放任意数据类型;
2)在指明类型的情况下,只存放当前指明的类型长度可变(jdk实现的),提供了很多方法及选择;
3)集合的辅助类(java.util.Collections)
※ 集合
java.util.Collections(标准)存储单个数据的父接口
1.java.util.List(子接口):存储数据的特点,有序可重复。
2.java.util.Set(子接口):存储数据的特点,无序不能重复。
java.util.Map(标准)储存的是一对一对的数据(key-value)
Java中集合主要分为三种类型:
※ Set : 无序,并且放进集合中的对象不能重复。
1.HashSet
2.TreeSet
※ List: 有序(放入的先后的次序), 放进集合中的对象可以重复。
1.ArrayList
2.Linkedlist
3.Vector(Vector线程安全的集合,容量翻倍增加 Arraylist线程不安全的集合)
※ Map : 集合中的每一个元素包含一对键对象和值对象,集合中没有重复的键对象,值对象可以重复。(Key - Value)
1.HashMap
2.HashTable
3.TreeMap