Collection:
只能存放一种类型的数值。有序可重复可以用List,List只是接口,具体的实现有ArrayList,LinkedList以及Vector;无序不可重复用Set,Set也是接口类型,实现是类是HashSet、TreeSet,LinkedHashSet继承了HashSet;
Map:
可以存放键值对这样的容器。Map是接口,Hashtable、HashMap、TreeMap是对Map的实现,LinkedHashMap是对HashMap的继承,properties是对Hashtable的继承
ArrayList:
顾名思义,该类是由数组实现的列表,特点不适合做大量的增删操作
LinkedList
用链表实现的列表,特点是增删效率较高
HashSet
根据对象的哈希值来确定元素在集合中的存储位置,读取和写入效率很高。
收获:
功能就是将字符串去重,需要重写自定义类中的方法,也不知道内部是什么机制,但实现了去重的功能。
package com.powerlbs;
import java.util.HashSet;
import java.util.Iterator;
import javax.swing.plaf.basic.BasicScrollPaneUI.HSBChangeListener;
class Student{
String id;
String name;
public Student(String id,String name){
this.id=id;
this.name=name;
}
public String toString(){
return id+":"+name;
}
public int hashCode(){
return id.hashCode();
}
public boolean equals(Object obj){
if(this==obj)
return true;
if(!(obj instanceof Student))
return false;
Student stu=(Student)obj;
boolean b=this.id.equals(stu.id);
return b;
}
}
public class test {
public static void main(String args[]){
HashSet set=new HashSet();
Student stu1=new Student("1", "Jack");
Student stu2=new Student("2", "Rose");
Student stu3=new Student("2", "Rose");
set.add(stu1);
set.add(stu2);
set.add(stu3);
System.out.println(set);
}
}
TreeSet
以自平衡排序二叉树的方式来存储元素,它可以实现对集合中的元素进行排序,没有重复。
package com.powerlbs;
import java.util.Iterator;
import java.util.TreeSet;
public class test {
public static void main(String args[]){
TreeSet ts=new TreeSet();
ts.add("Jack");
ts.add("Helena");
ts.add("Eve");
Iterator it=ts.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
自定义排序-按字符串的长度排序
package com.powerlbs;
import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;
class MyComparator implements Comparator{
public int compare(Object obj1,Object obj2)
{
String s1=(String)obj1;
String s2=(String)obj2;
int temp=s1.length()-s2.length();
return temp;
}
}
public class test {
public static void main(String args[]){
TreeSet ts=new TreeSet(new MyComparator());
ts.add("Jack");
ts.add("Helena");
ts.add("Eve");
Iterator it=ts.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}