(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<Student> list=new ArrayList<Student>(); 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<list.size();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<list.size();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<list.size();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集合类排序
原文:http://www.cnblogs.com/deng-c-q/p/5082263.html