大家好,欢迎来到IT知识分享网。
List 容器
ArrayList
使用Object[] 数组存储对象
//定义一个只能存放String的ArrayList,此时没有传参数,strings的容量为 0 ArrayList<String> strings = new ArrayList<>(); //添加对象之前会保证容器的容量足够大,如果不够就会进行扩容操作(如果构造器未传参数,默认扩容为容量10,否则新容量 新容量 = 老容量 + (老容量>>1),默认最大容量是 Integer.MaxValue-8,但是还可以再多8,达到MaxValue) strings.add("a"); //删除对应下标的元素, 从删除下标开始到数据结尾 整体向前复制 strings.remove(1); //自定义排序,匿名内部类 实现Comparator接口 strings.sort(new Comparator<String>() {
@Override public int compare(String o1, String o2) {
return o1.compareTo(o2);//如果o1 的字典序 小于 o2 的字典序 则返回-1 (o1.string - o2.string) } }); //遍历方式 1. for(String string:strings){
System.out.println(string); } //遍历方式 2. for (int i = 0 ;i<strings.size();i++){
System.out.println(strings.get(i)); } //遍历方式 3. for (Iterator<String> iterator = strings.iterator(); iterator.hasNext();){
System.out.println(iterator.next()); }
LinkedList
使用内部类Node 存储对象
LinkedList<String> strings = new LinkedList<>(); //存储Node节点,双向链表 有节点 first 和 last strings.add("a1");//尾插法 strings.addFirst("a0"); //头插法 strings.remove(0); //删除一个节点 (从头或尾 接近的一端开始找节点) //自定义排序 //List接口的默认方法,转换成Object[]数组,排序后通过 "list迭代器赋值" strings.sort(new Comparator<String>() {
@Override public int compare(String o1, String o2) {
return o1.compareTo(o2); } });
vector
vector 容器与 ArrayList 类似,内部使用Object[ ] 存储数据
不同的是
- ArrayList每次扩容 new = old + (old>>1),Vector 扩容 new = old + incr==0? old : incr (incr 是实例化时的增长容量)
- Vector 内部某些增删改方法使用 synchronized 关键字修饰,是线程安全的,但是会影响操作效率。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/99367.html
