集合笔记
集合
-
集合中删除非字符串对象,不能直接写值(默认为下标),应转为包装类。
-
ArrayList和Vector区别:底层都是基于数组实现,但ArrayList未考虑线程安全问题,并对一些算法上做了优化,Vector线程安全。
-
ArrayList和LinkerList区别:ArrayList基于数组实现,查询快,增删慢,LinkerList基于链表实现,查询慢增删快,有着自己方法:addFirst();addLast();removeFirst();addLast();
-
List接口特点:有序,有下标,可重复。
-
LinkerList:java中链表就是自己实现一个类,在类中记录了前一个和后一个地址,每一次查询都要找到前一个或后一个才能往前或者往后找到。
-
Set接口特点:无下标,无序,不能重复。
-
foreach循环
-
迭代器:Iterator it = list.iterator(); while(it.hasNext()){syso(it.next)}
NoSuchElementException: Iterator类的next( )方法在同一循环中不能出现两次。
-
泛型:无泛型问题:(1)想要创建只保存一类对象,但其他类对象也可以放入。(2)对象放入集合丢失对象状态信息,系统只知道Object,要强转,增加编程复杂度,强转容易出类型转换异常。
-
基本类型泛型要用对应的包装类。
-
TreeSet有序排序要求(实体类直接实现):放入的对象必须是实现comparable接口,重写comparTo方法。
或手写另外一个类,(内部类实现comparator接口);
comparable(lang包);comparator(util包)
-
Iterator接口中方法:hasNext:集合有更多元素,返回true;
next:返回下一个元素;
remove:删除iterator最后一个元素。
-
TreeSet基本方法:first(last)返回首(尾)元素;pollFirst(last)删除首(尾)元素;
Object height/lower(Object boj):返回集合中严格大于/小于给定元素的最小/大元素。
-
使用sort(一个参数)的方法,必须实现computable接口;
如果不想实现接口,sort(泛型集合,实现了Comparator接口的类);
-
Map键值对,
存值 map.put(1,"张三");
取值 map.get(1);键不能重复;
获取所有key:map.keySet();
获取所有值:Collection<> stus = map.values();
获取map的entrySet:Set<Map,Entry<String,Student>>entry=map.entrySet();
-
内部类:只在当前类的内部使用,(界面,操作)Person.Body b = new Person().new Body();
-
Collections.shuffle(洗牌)
浙公网安备 33010602011771号