集合框架(List的三个子类的特点)

  • A:List的三个子类的特点
    ArrayList:
    底层数据结构是数组,查询快,增删慢。
    线程不安全,效率高。
    Vector:
    底层数据结构是数组,查询快,增删慢。
    线程安全,效率低。
    Vector相对ArrayList来说 查询慢(线程安全)
    Vector相对LinkedList来说,增删慢(数组结构)
    LinkedList:
    底层数据结构是链表,查询慢,增删快。
    线程不安全,效率高。

    Vector和ArrayList的区别
    Vector是线程安全的,效率低
    ArrayList是线程不安全的,效率高
    共同点:都是数组实现的

    ArrayList和LinkedList的区别
    ArrayList底层是数组结构,查询和修改快
    LinkedList底层是链表结构,增和删比较快,查询和修改比较慢
    共同点:都是线程不安全的

    • B:List有三个儿子,
      当查询多的时候,用ArrayList
      增删多的时候,用LinkedList
      如果查询、增删都多的时候,用ArrayList
package com.wsq.bean;
public class Student {private String name;private int age;public Student() {super();}public Student(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setNaem(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Student [naem=" + name + ", age=" + age + "]";}
}
package com.wsq.collection;
import com.wsq.bean.Student;
public class Demo_array {public Demo_array() {}public static void main(String[] args) {//int [] arr = new int [5]; //创建基本数据类型数组Student [] arr = new Student [5];//引用基本数据类型数组arr[0] = new Student("张三",23);//创建一个学生对象,存储在数组的第一个位置arr[1] = new Student("李四",24);//创建一个学生对象,存储在数组的第二个位置arr[2] = new Student("王五",25);//创建一个学生对象,存储在数组的第三个位置for(int i = 0;i<arr.length;i++){System.out.println(arr[i]);}}
}
package com.wsq.collection;
import java.util.ArrayList;
import java.util.Collection;
import com.wsq.bean.Student;
/** ArrayList的父类重写toString方法,所以*/
public class Demo2_Collection {@SuppressWarnings("unchecked")public static void main(String[] args) {@SuppressWarnings("rawtypes")Collection c = new ArrayList();c.add("a");c.add("b");c.add("c");c.add("d");c.remove("b");          //删除指定元素System.out.println(c);}public static void demo1(){Collection c = new ArrayList();//父类引用指向子类对象boolean b1 = c.add("abc");     //自动装箱new Booleanz(ture);boolean b2 = c.add(true);boolean b3 = c.add(100);boolean b4 = c.add(new Student("张三",23));boolean b5 = c.add("abc");System.out.println(b1);System.out.println(b2);System.out.println(b3);System.out.println(b4);System.out.println(b5);System.out.println(c.toString());}
}
package com.wsq.collection;
import java.util.ArrayList;
import java.util.Collection;
import com.wsq.bean.Student;
public class Demo3_Collection {public static void main(String[] args) {//demo1();Collection c = new ArrayList();c.add(new Student("张三",23));//object obj = new student("张三",23);c.add(new Student("李四",24));c.add(new Student("王五",25));c.add(new Student("赵六",26));Object [] arr = c.toArray();//将集合转换成数组for (int i = 0; i < arr.length; i++) {//System.out.println(arr[i]);Student s = (Student)arr[i];//向下转型System.out.println(s.getName() + "..." + s.getAge());}}public static void demo1(){Collection c = new ArrayList();c.add("a");c.add("b");c.add("c");c.add("d");Object[] arr = c.toArray();for(int i= 0;i<arr.length;i++){System.out.println(arr[i]);}   }
}
package com.wsq.collection;
import java.util.ArrayList;
import java.util.Collection;
public class Demo4_CollectionAll {public static void main(String[] args) {//demo1();  //demo2();//demo3();Collection c1  = new ArrayList();c1.add("a");c1.add("b");c1.add("c");c1.add("d");    Collection c2   = new ArrayList();c2.add("a");c2.add("b");c2.add("c");c2.add("d");//取交集,如果调用的集合改变就返回true,如果调用的集合不变就返回falseboolean b = c1.retainAll(c2);   //取交集System.out.println(b);System.out.println(c1);}public static void demo1(){Collection c1  = new ArrayList();c1.add("a");c1.add("b");c1.add("c");c1.add("d");Collection c2   = new ArrayList();c2.add("a");c2.add("b");c2.add("c");c2.add("d");//c1.addAll(c2);       //将c2中的每一个元素添加到c1中c1.add(c2);System.out.println(c1);//将c2看成一个对象添加到c1中}public static void demo2(){Collection c1  = new ArrayList();c1.add("a");c1.add("b");c1.add("c");c1.add("d");Collection c2   = new ArrayList();c2.add("a");c2.add("b");c2.add("z");boolean b = c1.removeAll(c2);   //删除的是交集System.out.println(b);System.out.println(c1);}public static void demo3(){Collection c1  = new ArrayList();c1.add("a");c1.add("b");c1.add("c");c1.add("d");Collection c2   = new ArrayList();c2.add("a");c2.add("b");c2.add("z");boolean b = c1.containsAll(c2);    //判断调用的集合是否包含传入的集合System.out.println(b);}
}
package com.wsq.collection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import com.wsq.bean.Student;
public class Demo5_Iterator {public static void main(String[] args) {Collection c = new ArrayList();c.add(new Student("张三",23));c.add(new Student("李四",24));c.add(new Student("王五",25));c.add(new Student("赵六",26));//获取迭代器Iterator it = c.iterator();while(it.hasNext()){//System.out.println(it.hasNext());Student s = (Student)it.next();         //向下转型System.out.println(s.getName() + "..." + s.getAge());}}public static void demo1(){Collection c = new ArrayList();c.add("a");c.add("b");c.add("c");c.add("d");//对集合中的元素迭代(遍历)Iterator it = c.iterator();/*boolean b1 = it.hasNext();          //判断集合中是否有元素,有就返回trueObject obj1 = it.next();System.out.println(b1);System.out.println(obj1);boolean b2 = it.hasNext();          //判断集合中是否有元素,有就返回trueObject obj2 = it.next();System.out.println(b2);System.out.println(obj2);*/while(it.hasNext()){System.out.println(it.next());}}
}
package com.wsq.list;
import java.util.List;
import java.util.ArrayList;
public class Demo1_LIst {public static void main(String[] args) {//demo1();//demo2();//demo3();//demo4();List list = new ArrayList();list.add("a");list.add("b");list.add("c");                      //index<=size并且index>=0都会报异常list.add("d");list.set(1, "z");                   //将指定位置的元素修改System.out.println(list);}   public static void demo1(){List list = new ArrayList();list.add("a");list.add("b");list.add("c");                      //index<=size并且index>=0都会报异常list.add("d");list.add(4,"f");//list.add(1,"e");//list.add(10,"z");                  //当储存时,不存在的索引时,就会出现索引越界异常System.out.println(list);}public static void demo2(){List list = new ArrayList();list.add("a");list.add("b");list.add("c");                      //index<=size并且index>=0都会报异常list.add("d");Object obj = list.remove(1);        //通过索引删除元素,将被删除的元素返回System.out.println(obj);System.out.println(list); }public static void demo3(){List list = new ArrayList();list.add(111);list.add(222);list.add(333);list.remove(111);         //删除的时候不会自动装箱,把111当成索引 System.out.println(list); }public static void demo4(){List list = new ArrayList();list.add("a");list.add("b");list.add("c");                      //index<=size并且index>=0都会报异常list.add("d");  /*Object obj1 = list.get(2);System.out.println(obj1);*///通过索引遍历List集合for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}}}
package com.wsq.list;
import java.util.Enumeration;
import java.util.Vector;
public class Demo2_Vector {public static void main(String[] args) {Vector wsq = new Vector();wsq.addElement("a");wsq.addElement("b");wsq.addElement("c");wsq.addElement("d");Enumeration yy = wsq.elements();while(yy.hasMoreElements()){System.out.println(yy.nextElement());}}
}
package com.wsq.list;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class Demo4_ListIterator {public static void main(String[] args) {List list = new ArrayList();            //Object obj = new String();list.add("a");list.add("b");list.add("world");list.add("d");list.add("e");ListIterator lit = list.listIterator();                 //获取迭代器while(lit.hasNext()){   System.out.println(lit.next());                     //获取元素并将指针向后移动}System.out.println("-------------------------");while(lit.hasPrevious()){System.out.println(lit.previous());                 //获取元素并将指针向前移动}}
}

Java——集合框架(List)相关推荐

  1. Java集合框架综述,这篇让你吃透!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:平凡希 cnblogs.com/xiaoxi/p/60899 ...

  2. 【Java集合框架】ArrayList类方法简明解析(举例说明)

    本文目录 1.API与Java集合框架 2.ArrayList类方法解析 2.1 add() 2.2 addAll() 2.3 clear() 2.4 clone() 2.5 contains() 2 ...

  3. Java集合框架的知识总结(1)

    Java集合框架的知识总结(1) 所有集合类都位于java.util包下.集合中只能保存对象(保存对象的引用变量). Java的集合类主要由两个接口派生而出:Collection和Map,Collec ...

  4. java集合框架史上最详解(list set 以及map)

    title: Java集合框架史上最详解(list set 以及map) tags: 集合框架 list set map 文章目录 一.集合框架总体架构 1.1 集合框架在被设计时需满足的目标 1.2 ...

  5. 【Java集合源码剖析】Java集合框架

    2019独角兽企业重金招聘Python工程师标准>>> Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组.链表.栈.队列.集合.哈希表等.学习Java集 ...

  6. Java集合框架中Map接口的使用

    在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不 ...

  7. java集合框架综述

    一.集合框架图 简化图: 说明:对于以上的框架图有如下几点说明 1.所有集合类都位于java.util包下.Java的集合类主要由两个接口派生而出:Collection和Map,Collection和 ...

  8. java集合框架容器 java框架层级 继承图结构 集合框架的抽象类 集合框架主要实现类...

    本文关键词: java集合框架  框架设计理念  容器 继承层级结构 继承图 集合框架中的抽象类  主要的实现类 实现类特性   集合框架分类 集合框架并发包 并发实现类 什么是容器? 由一个或多个确 ...

  9. Java集合框架系列教程三:Collection接口

    翻译自:The Collection Interface 一个集合表示一组对象.Collection接口被用来传递对象的集合,具有最强的通用性.例如,默认所有的集合实现都有一个构造器带有一个Colle ...

  10. Java集合框架(1)

    Collection接口:它是Java集合框架的一个根接口,也是List.Set和Queue接口的父接口.同时它定义了可用于操作List.Set和Queue的方法-增删改查.Map接口:它提供了一种映 ...

最新文章

  1. VTK:受约束的 Delaunay 2D用法实战
  2. 【MySQL性能优化】MySQL分库分表与水平分割取模案例(三)
  3. hadoop学习4 调测错误备案
  4. laravel session redis 设置
  5. 韩顺平php教程笔记,PHP笔记,韩顺平php笔记_PHP教程
  6. HZOJ 大佬(kat)
  7. mysql内置含糊_mySQL入门04 内置函数
  8. Codewars-parseInt() reloaded(实现英文单词和数字的转换)
  9. 3月起这些新规将实施:从事网络招聘服务应取得许可证
  10. Navicat Report Viewer 如何连接到 MySQL 数据库
  11. SpringMVC的json数据交互
  12. jqGrid添加详细按钮,单击弹出窗体
  13. 性能分析:处理器、磁盘I/O、进程、网络分析方法 http://www.cnblogs.com/fnng/archive/2012/10/30/2747246.html...
  14. kingbase 修改数据库密码
  15. 哪些服务器适合使用固态硬盘,服务器用固态硬盘还是机械硬盘合适?
  16. 最新版火车头织梦内容发布规则_火车头采集 - 织梦图集发布模块的制作
  17. ImageMagick将多张图片拼接成一张图片_不会PS也没关系!我想向你推荐这18款免费好用的在线图片处理工具...
  18. 软件测试怎么测微信朋友圈,面试题:软件测试,如何测微信的朋友圈?
  19. matlab maps 指北针和比例尺,第5步:制作地图(指北针、比例尺、图例).doc
  20. [渝粤教育] 西南科技大学 财务管理与分析 在线考试复习资料(2)

热门文章

  1. mysql事务的重复性读_Mysql下InnoDB的可重复读级别的事务测试
  2. Table Dragger - 简单的 JS 拖放排序表格插件
  3. Springboot + Mybatis + Ehcache
  4. 粗读《构建之法》后的思考和收获
  5. jpg、gif、png-8、png-24的区别
  6. FFT实现高精度乘法
  7. mysql基本命令入门
  8. 穆里尼奥:与范加尔风格不同,转变需要时间
  9. TClientDataSet使用要点
  10. echo 12345678 | base64 产生的结果跟12345678真正的base64编码不对