基础篇——集合与泛型

一、集合

TreeSet:以有序状态保持并可防止重复,其元素必须是Comparable

HashMap:可用成对的key/value来存取

LinkedList:针对经常插入或者删除中间元素所设计的高效率集合

HashSet:防止重复的集合,可快速地找出相符的元素

LinkedHashMap:类似HashMap,但可以记住元素插入的顺序,也可以设定成依照元素上次存取的先后来排序

ArrayList:可以避免重复的元素,动态的操作

二、排序

对于基础主数据类型,可以用Collection.sort()直接排序

Collection.sort():

public static > void sort(List list)

public void take(ArrayList list){}

指定按照类中某一个实例变量来排序:

class Song implements Comparable{
String title;
@override
public int compareTo(Song s){
return title.compareTo(s.tile);
}
}
上述方法只能按照title来排序。

按照多种实例变量来排序:

1、创建并实现Comparator的内部类,以compare()方法代替compareTo()方法;

2、制作该类的实例;

3、调用重载版的sort();

public class box{
...
class compare implements Comparator{
@override
public int compare(Song one,Sone two){
return one.artist.compareTo(two.artist);
}

@override
public int wordscompare(Song one,Sone two){
return one.words-two.words;
}
}
...
public void go(){
...
compare ac = new compare();
Collection.sort(songList,ac);
}
}
三、对象相等判断

if(foo.equals(bar) && foo.hashCode()==bar.hashCode()){
//foo equals to bar
}
equals保证引用是一样的;hashCode会冲突;

四、多态参数与泛型

public  void take(ArrayList list)
public void take(ArrayList list)
典例:

ArrayList dogs = new ArrayList();
ArrayList animals = new ArrayList();
List list = new ArrayList();//ok
ArrayList dogs = new ArrayList();//ok
ArrayList animals = dogs;
List dogList = dogs;//ok
ArrayList objects = new ArrayList();//ok
List objList = objects;//ok
ArrayList objs = new ArrayList();
 
  

五、

1、Collection.sort(List);

List中对象的类必须实现Comparable、compareTo()

2、Collection.sort(List,compare);

List中对象的类不必实现Comparable、Comparator

compare对象的类必须实现Comparator、compare()




你可能感兴趣的:(JAVA)