(1)集合类和数组:集合类和数组都是容器,集合类和数组的不同之处是:数组的长度是固定的,而集合类的长度不固定;数组用来存放基本数据类型,而集合用来存放引用数据类型。
(2)常用的集合有:List集合,set集合,map集合,其中List集合和Map集合是实现collection接口的。
(3)collection接口,List接口,Set接口:
collection接口是,List和Set的父接口。list是有序集合,除Iteable接口和Collection接口所有方法外,增加所有和index有关的方法,比如add(int index,E e),remove(int index)...常用实现类ArrayList,LinkedList,Vector;set无序集合,继承自Collection,不含重复元素的集合,最多包含一个null,常见实现类HashSet,TreeSet;
package Day09Homework02;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class ListDemo {
private List list=new ArrayList();
public void studentAdd(){
list.add(new Student("aa",18));
list.add(new Student("bb",19));
list.add(new Student("cc",14));
}
//编写代码实现使用姓名查找并打印学员(找不到要给与提示)
public void findByName(){
System.out.println("通过姓名查找");
Scanner input=new Scanner(System.in);
String inName=input.next();
for(int i=0;i
if(inName.equals(list.get(i).getName())){
System.out.println("name\tage");
System.out.println(list.get(i));
}
System.out.println("没有找到");
}
input.close();
}
//编写代码实现使用姓名删除某个学员
public void delStudent(){
System.out.println("通过姓名查找要删除的学生信息");
Scanner input=new Scanner(System.in);
String inName=input.next();
for(int i=0;i
if(inName.equals(list.get(i).getName())){
list.remove(i);
}
else {
}
}
input.close();
}
//编写代码实现根据名字修改学员
public void changeStudent(){
System.out.println("通过姓名查找要修改的学生信息:");
Scanner input=new Scanner(System.in);
String inName=input.next();
for(int i=0;i
if(inName.equals(list.get(i).getName())){
System.out.println("修改姓名:");
String cname=input.next();
list.get(i).setName(cname);
int cage=input.nextInt();
list.get(i).setAge(cage);
}
else {
}
}
input.close();
}
//打印学生信息
public void printStu(){
for(Student stu:list){
System.out.println(stu);
}
}
}
(4)ArrayList类和LinkedList类:
ArrayList内部结构是数组,跟适合添加,遍历,查找,索引(随机访问),不易进行更改内部操作。LinkedList内部结构是链表,更适合于频繁的中间删除,插入,提供更多方法供使用。
(5)set接口和HashSet类,TreeSet类
set里面的元素是不能重复烦人:hashset通过重写添加元素类模板的hashCode,equals方法来判断元素是否重复,无序集合,最多包含一个null元素,TreeSet需要根据类模板中的compareTo或构造器里的compare判断元素是否重复以及排序先后。
(6)map接口和hashMap类,TreeMap类
hashMap类是基于哈希表的Map接口实现,此类实现了map中的映射,并允许使用null值和null键,但必须保证键的唯一性,hashMap通过哈希码对其内部的映射关系进行快速查找。此类不保证映射的顺序。TreeMap类将键值对按照一定的顺序排列。因此不允许键对象是null
(7)迭代器
(8)list集合类排序,map集合类排序