首页 > 代码库 > 基础篇——集合与泛型
基础篇——集合与泛型
一、集合
TreeSet:以有序状态保持并可防止重复,其元素必须是Comparable
HashMap:可用成对的key/value来存取
LinkedList:针对经常插入或者删除中间元素所设计的高效率集合
HashSet:防止重复的集合,可快速地找出相符的元素
LinkedHashMap:类似HashMap,但可以记住元素插入的顺序,也可以设定成依照元素上次存取的先后来排序
ArrayList:可以避免重复的元素,动态的操作
二、排序
对于基础主数据类型,可以用Collection.sort()直接排序
Collection.sort():
public static <T extends Comparable<? super T>> void sort(List<T> list)
public <T extends Animal> void take(ArrayList<T> list){}
指定按照类中某一个实例变量来排序:
class Song implements Comparable<Song>{ 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<Song>{ @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 <T extends Animal> void take(ArrayList<T> list) public void take(ArrayList<? extends Animal> list)典例:
ArrayList<Dog> dogs = new ArrayList<Animal>(); ArrayList<Animal> animals = new ArrayList<Dog>(); List<Animal> list = new ArrayList<Animal>();//ok ArrayList<Dog> dogs = new ArrayList<Dog>();//ok ArrayList<Animal> animals = dogs; List<Dog> dogList = dogs;//ok ArrayList<Object> objects = new ArrayList<Object>();//ok List<Object> objList = objects;//ok ArrayList<Object> objs = new ArrayList<Dog>();
五、
1、Collection.sort(List);
List中对象的类必须实现Comparable、compareTo()
2、Collection.sort(List,compare);
List中对象的类不必实现Comparable、Comparatorcompare对象的类必须实现Comparator、compare()
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。