Java的会合框架

Java的集合框架
Java中有三种集合框架:

- List: List 是一个有序的集合,能够包含同样的元素(e1.equals(e2)),加上或者去掉元素。
List 集合也接受空的元素但是不能。
有两种List: 一个是ArrayList让我们得到元素比较快但是算慢当我们要加上或者去掉元素
另外一个 是LinkedList是比较快加上或者去掉元素但是比较慢得到元素。
List是Collection,Iterable借口的继承。
List 集合能实现这些类: AbstractList, AbstractSequentialList, ArrayList, AttributeList,
CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector
List 的常用方法:
*boolean add(E e):在后面加上一个元素
*void add(int index, E element): 在中间加上元素
*void clear():删除所有的元素
*boolean equals():比较两个元素
*E getIndex(): 得到元素经过他的索引
*Iterator<E> iterator(): 返回这个集合的元素在Iterator,经常用这个方法打印的时候
*E remove(): 去掉一个元素
*E set(int index):交换元素在定义了的索引
*int size(): 查看集合的大小
*object[] toArray:把List集合变成一个数组

- Set: Set 是也个无序的集合而且不能有重复元素所以不包含equals()方法。
   Set 最常用的引用是会员资格,看元素在不在Set中。
   Set是Collection借口的继承。
        常用的实现类是AbstractSet, HashSet, LinkedHashSet, TreeSet
   Set的常用方法:
   *boolean add(E e):在后面加上一个元素
   *boolean contains(obejct o): 返回一个真当元素在Set中
   *Iterator<E> iterator(): 返回这个集合的元素在Iterator,经常用这个方法打印的时候
   *void clear():删除所有的元素
   *boolean equals():比较两个元素
   *int size(): 查看集合的大小
*object[] toArray:把List集合变成一个数组
  
 

- Map: Map不是Collection借口的继承是维护键(Key)/值对(Value)用的借口。
   Map 能够返回他的维护键在Set中。
   Map 常用方法:
   *void clear():删除所有的元素
   *V put(K Key, V Value): 加上元素
   *V remove(object key):删除元素
   *int size(): 返回Map中的维护键的数字
   *boolean isEmpty(): 查看集合是否空的
   *boolean equals(object): 比较两个元素经过他们的维护键
   *boolean containsKey(object key): 返回真当集合包含指定维护键
*boolean containsValue(object value): 返回真当集合包含指定值对




import java.util.ArrayList;

public class ListTest {

// 主函数
public static void main(String[] args) {

ArrayList<Student> al = createList();//创建集合
Student stu2 = new Student("学生   5", 19);
al.add(stu2);
Student stu3 = new Student("学生   7", 35);
al.add(stu3);
System.out.println("原集合为:");
printList(al);//打印集合
System.out.println("================================================");
System.out.println("被改了的集合为:");
remove(al);
printList(al);//打印集合
System.out.println("---------->"+al.get(5).getName()+"\t"+ al.get(5).getScore());
}

public static void remove(ArrayList<Student> al){

Object[] obj = al.toArray();
for(int i= 0;i<obj.length; i++){
for(int j = i+1; j<obj.length; j++){
Student stu1 = (Student) obj[i];
Student stu2 = (Student) obj[j];
if(stu1.getName().equals(stu2.getName())){
al.remove(stu1);
}
}
}
}

// 定义List集合的方法
public static ArrayList<Student> createList(){

// 创建ArrayList 的对象
ArrayList<Student> al = new ArrayList<Student>();
for(int i= 0; i<10; i++){
Student stu = new Student("学生   "+i,(5*i));
al.add(stu);
}
return al;
}

// 打印方法
public static void printList(ArrayList<Student> al){

for(int i=0; i<al.size(); i++){
Student stu = al.get(i);
System.out.println(stu.getName()+"\t"+stu.getScore());
}
}
}




import java.util.HashSet;
import java.util.Set;

public class SetTest {


// 主函数
public static void main(String[] args) {

Set<Student> setTest = createSet();//创建集合
Student stu2 = new Student("学生   5", 25);
setTest.add(stu2);
Student stu3 = new Student("学生   7", 35);
setTest.add(stu3);
printSet(setTest);//打印集合
}


// 定义Set集合的方法
public static Set<Student> createSet(){

// 创建HashSet 的对象
Set<Student> setTest = new HashSet<Student>();
for(int i= 0; i<10; i++){
Student stu = new Student("学生   "+i,(5*i));
setTest.add(stu);
}
return setTest;
}

// 打印方法
public static void printSet(Set<Student> setTest){

java.util.Iterator<Student> iterator = setTest.iterator();
while(iterator.hasNext()){
Student stud = iterator.next();
System.out.println(stud.getName()+"\t"+stud.getScore());
}
}
}




import java.util.HashMap;
import java.util.Iterator;


public class MapTest {


// 主函数
public static void main(String[] args) {

HashMap<Integer,Student> hsMap  = createHashMap();//创建集合
Student stu2 = new Student("学生   5", 19);
hsMap.put(12,stu2);
Student stu3 = new Student("学生   7", 35);
hsMap.put(13,stu3);
printList(hsMap);//打印集合
}


// 定义Map集合的方法
public static HashMap<Integer,Student> createHashMap(){

// 创建HashMap 的对象
HashMap<Integer,Student> hsMap = new HashMap<Integer,Student>();
for(int i= 0; i<10; i++){
Student stu = new Student("学生   "+i,(5*i));
hsMap.put(i,stu);
}
return hsMap;
}

// 打印方法
public static void printList(HashMap<Integer,Student> hsMap){

Iterator<Integer> iterator = hsMap.keySet().iterator();
while(iterator.hasNext()){
Integer key = iterator.next();
Student stu = hsMap.get(key);
System.out.println("Key:   "+key+"\t value:  "+stu.getName()+"\t"+stu.getScore());
}
}
}