java api: application interface 应用程序接口
JAVA API是java开发团队实现做好的类库
类库:就是一些java类的集合,是一些功能的集合
JAVA API狭义的理解就是java的方法
经常会有这样的说法:
调用api方法/调用api
所有的输入输出流,文件操作
Thread类和Runable接口
线程池
网络线程:tcp/ip编程
Socket类
ServerSocket类
集合框架,把很多对象存储在一起.拥挤和的名称并同时使用集合的api,来操作集合中的数据
有了集合可以让数据的存储变得复杂,用对象可以存储不同类型的数据,把若干对象村塾在集合中
ArrayList类 ArrayList implement List
LinkedList类 LinkedList implement List
HashMap类 HashMap implement Map
HashTable类 HashTable implement Map
List是一个接口,接口中定义了规范,要使用这些接口就必须实现这个接口,并给接口的方法补上方法体
ArrayList类和LinkedList类都是List接口的子实现
ArrayList类有具体的下标,通过下标查询速度快,不适合做增和删.更适合做位置下标.
LinkedList类不适合做查询,更适合做增和删,适合做链表
HashMap可以存储null,线程不安全,.异步
HashTable不可以存储null,线程安全,同步
原因:前提是能确定key值,就一定会快速的获取key对应的对象,很多的框架中的数据都是用Map集合存储的
想Spring框架,Springmvc框架,Strutcts框架,mybatis框架,Tomcat框架,redis框架等…
map的集合只能通过put方式添加集合元素(键值对),存储完后,会把所有的key构成一个Set集合,此Set集合只能读取,不能添加,同理所有的value组成的集合只能读取,不能添加
解决了更复杂的数据结构的问题
例:
ArrayList all=new ArrayList();
ArrayList all=new ArrayList();
ArrayList
迭代 等价理解为 循环 等价理解为 遍历
public class IteratorService {
public List<Person> getPerson_List(){
/**
* 获取一个List对象的集合
*/
List<Person> list=new ArrayList<Person>();
Student stu1=new Student("张三",20,"S001");
Student stu2=new Student("李四",21,"S002");
Student stu3=new Student("王五",22,"S003");
Student stu4=new Student("张五",20,"S001");
Teacher tea1=new Teacher("赵六",23,10000);
Teacher tea2=new Teacher("田七",30,20000);
list.add(stu1);
list.add(stu2);
list.add(stu3);
list.add(stu4);
list.add(tea1);
list.add(tea2);
return list;
}
public Set<Person> getPerson_Set(){
/**
* 获取一个Set对象的集合
*/
Set<Person> set=new HashSet<Person>();
Student stu1=new Student("张三",20,"S001");
Student stu2=new Student("李四",21,"S002");
Student stu3=new Student("王五",22,"S003");
Student stu4=new Student("张五",20,"S001");
Teacher tea1=new Teacher("赵六",23,10000);
Teacher tea2=new Teacher("田七",30,20000);
set.add(stu1);
set.add(stu2);
set.add(stu3);
set.add(stu4);
set.add(tea1);
set.add(tea2);
return set;
}
public Map<String,Person> getPerson_Map(){
/**
* 获取一个Map对象的集合
*/
Map<String,Person> map=new HashMap<String,Person>();
Student stu1=new Student("张三",20,"S001");
Student stu2=new Student("李四",21,"S002");
Student stu3=new Student("王五",22,"S003");
Student stu4=new Student("张五",20,"S001");
Teacher tea1=new Teacher("赵六",23,10000);
Teacher tea2=new Teacher("田七",30,20000);
map.put(stu1.getName(), stu1);
map.put(stu2.getName(), stu2);
map.put(stu3.getName(), stu3);
map.put(stu4.getName(), stu4);
map.put(tea1.getName(), tea1);
map.put(tea2.getName(), tea2);
return map;
}
/**
* 把List集合转换成iterator迭代器
* 用迭代器的方式迭代数据
*/
public void iterator_List(){
List<Person> list=this.getPerson_List();
Iterator<Person> it=list.iterator();//把List集合转化成迭代器集合
while(it.hasNext()){
/**
*
* it.next(),只是判断是否有下一个数据
* 如果有下一个数据,就取出下一个数据
*/
Person p=it.next();
//继续根据具体的业务逻辑去获取p对象中的数据
CommonPerson cp=(CommonPerson)p;
System.out.println("name="+cp.getName()+" age="+cp.getAge());
}
}
/**
* 把Set集合转换成iterator迭代器
* 用迭代器的方式迭代数据
*/
public void iterator_Set(){
Set<Person> set=this.getPerson_Set();
Iterator<Person> it=set.iterator();//把Set集合转化成迭代器集合
while(it.hasNext()){
/**
*
* it.next(),只是判断是否有下一个数据
* 如果有下一个数据,就取出下一个数据
*/
Person p=it.next();
//继续根据具体的业务逻辑去获取p对象中的数据
CommonPerson cp=(CommonPerson)p;
System.out.println("name="+cp.getName()+" age="+cp.getAge());
}
}
/**
* 把Map集合转换成iterator迭代器
* 用迭代器的方式迭代数据
*/
public void iterator_Map(){
Map<String,Person> map=this.getPerson_Map();
Iterator<Person> it=map.values().iterator();//把map集合的所有的value转化成迭代器集合
while(it.hasNext()){
/**
*
* it.next(),只是判断是否有下一个数据
* 如果有下一个数据,就取出下一个数据
*/
Person p=it.next();
//继续根据具体的业务逻辑去获取p对象中的数据
CommonPerson cp=(CommonPerson)p;
System.out.println("name="+cp.getName()+" age="+cp.getAge());
}
}
}