java中集合类

(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集合类排序

posted @ 2016-02-18 22:09  冷月枫寂  阅读(218)  评论(0编辑  收藏  举报