博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
五容器
阅读量:4552 次
发布时间:2019-06-08

本文共 6370 字,大约阅读时间需要 21 分钟。

容器

基本概念_Collection_Set_List接口介绍

   ·为什么需要集合

  数组插入,删除不可以改变数组的长度,数组具有一定的拘束性

   ·容器框架

  java集合框架提供了一套性能优良,使用方便的接口和类,它们位于java.util包中

  存放在集合中的数据叫做元素(element)      //集合只能存放对象

    Collection接口 (List 和 Set接口是Collection接口的子类接口)

  List接口  

  Set接口

   ·各接口的特点

  Collection接口存储一组不唯一,无序的对象

  List接口存储一组不唯一,有序(索引顺序)的对象

  Set接口存储一组唯一,无序的对象

List接口ArrayList用法详解

   ·ArrayList的用法:

1 package com.zqf.list_arraylist; 2  3 import java.util.ArrayList; 4 import java.util.Iterator; 5 import java.util.List; 6 import java.util.ListIterator; 7 import java.util.Scanner; 8  9 import com.sun.org.apache.xerces.internal.util.SynchronizedSymbolTable;10 11 public class TestArrayList {12     public static void main(String[] args) {13         //创建集合对象,接口new实现类14         List list = new ArrayList();15         //(1)add16         list.add("hello");17         list.add(123);        //自动装箱18         list.add(new Scanner(System.in));19         //(2)集合元素的个数size()20         System.out.println(list.size());21         System.out.println("集合是否为空:"+list.isEmpty());22         //(3)addAll(Collection c)23         List list2=new ArrayList();24         list2.add("hello");25         list2.add(123);26         list.add(list2);27         System.out.println("list集合中元素的个数:"+list.size());28         System.out.println(list);29         //(4)删除30         System.out.println("根据对象去删除:");31         list.remove("hello");32         System.out.println(list);33           //list.remove(123);         //认为123是索引34         list.remove(new Integer(123));35         System.out.println(list);36         list.add("world");37         list.removeAll(list2);38         list.retainAll(list2);39         System.out.println(list);40         41         //(5)判断42         System.out.println("hello在集合中是否存在:"+list.contains("hello"));43         System.out.println("java在集合中是否存在:"+list.contains("java"));44         //(6)清空元素中所有的集合对象45         System.out.println(list);46         System.out.println(list2);47         System.out.println(list.containsAll(list2));48         //list.clear();49         //System.out.println(list);50         51         //(7)获取指定索引位置上的元素对象52         System.out.println(list.get(1));53         //设置54         list.set(1, "java");55         System.out.println(list);56         //(9)在指定的索引位置上添加元素对象57         list.add(1,"html");58         System.out.println(list);59         //(10)查找元素在集合中的位置60         System.out.println(list.indexOf("java")+"\t"+list.indexOf("sql"));61         //(11)遍历集合中元素的内容62         /**(1)使用加强for循环遍历集合中的元素*/63         System.out.println("\n使用加强for循环遍历集合中的元素\n");64         for(Object obj:list){65             System.out.println(obj);66         }67         /**(2)使用普通for循环遍历集合中的元素对象*/68         System.out.println("\n使用普通for循环遍历集合中的元素对象\n");69         for(int i=0;i

 JDK与JRE的区别

  JRE: Java Runtime Environment

  JDK:Java Development Kit
  JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。
  JDK顾名思义是java开发工具包,是程序员使用编写java程序所需的开发工具包,是提供给程序员使用的。JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。
  如果你需要运行java程序,只需安装JRE就可以了。如果你需要编写java程序,需要安装JDK。
JRE根据不同(如:windows,linux等)和不同JRE提供商(IBM,ORACLE等)有很多版本,最常用的是Oracle公司收购SUN公司的JRE版本。

ArrayList_JDK_源码分析 

 

1 package com.zqf.list_arraylist; 2  3 import java.util.ArrayList; 4 import java.util.Iterator; 5 import java.util.List; 6 import java.util.ListIterator; 7 import java.util.Scanner; 8  9 import com.sun.org.apache.xerces.internal.util.SynchronizedSymbolTable;10 11 public class TestArrayList {12     /**ArrayList源码分析13     *(1)无参构造方法14     *        this.elementData 是一个Object类型的数组15     *        DEFAULTCAPACITY_EMPTY_ELEMENTDATA;也是一个Object类型的数组16     *        DEFAULTCAPACITY_EMPTY_ELEMENTDATA={};默认长度为017     *    public ArrayList(){18              this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;19              //相当于this.elementData={};20      }21      (2)带参构造方法22      public Arraylist(int initialCapacity){                23          if(initialCapaty > 0){24              this.elementData = new Object[initialCapacity];           25              //this.elementData = new Object[20];  26              }27      }  28      (3)添加方法add(Object obj)29      public boolean add(E e){30          //检测空间容量是否够用31          ensureCapacityInternal(size +1);    //Increments modCount!32          //添加元素    elementData[size]=e; size++;33          elementData[size++] = e;34          return true;35      }36      (4)检测空间容量是否够用37      private void ensureCapacityInternal(int minCapacity) {38          ensureExplicitCapacity(calculaeCapacity(elementData,minCapacity));39      }40          首先调用执行,计算容量41          calculateCapacity(elementData,minCapacity)42          //calculateCapacity方法定义43          private static int calculateCapacity(Object[] elementData,int minCapacity){44         if (elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA) {        //true45                     //Math.max(10,1)46             return Math.max(DEFAULT_CAPACITY, minCapacity);47         }48         return minCapacity;        //执行完之后的结果为 10 49         }50         //容量计算完毕后,执行ensureExplicitCapacity方法   ensureExplicitCapacity(10)51          ensureExplicitCapacity方法定义52     **/53     public static void main(String[] args) {54         ArrayList list = new ArrayList();55         list.add("hello");56         Object [] obj = {};57     }58 }

LinkedList的特点_链表_JDK源码分析

   LinkedList的特点

   链表

  单向链表:(1)一个节点:数据域(data),指针域(next)

       (2)多个节点组成单向链表

  双向列表:(1)一个节点

       (2)多个节点组成链表

   JDK源码分析

  add(Object obj)

1 package com.zqf.linkedlist; 2  3 import java.util.LinkedList; 4  5 public class TestLinkList { 6     /** 7      * LinkedList底层数据结构是链表,删除和添加元素效率较高,数据结构复杂 8      * ArrayList底层数据结构是数组,删除和添加元素效率比较低 9      * LinkedList底层源码分析10      * (1)构造方法11      * public LinkedList(){12      * }13      * (2)添加方法14      * public boolean add(E e) {15         linkLast(e);16         return true;17     }18      */19     public static void main(String[] args) {20         LinkedList list = new LinkedList();21         //添加元素22         list.add("hello");23         list.addFirst("java");24         list.addLast("world");25         //删头,删尾26         //list.removeLast();27         //list.removeFirst();28         System.out.println(list);29         //遍历30         for(Object obj:list){31             System.out.println(obj);32         }33     }34 }

未完待续........(实在是看不懂了,等基础好了,在回头看)

转载于:https://www.cnblogs.com/zqfdgzrc/p/10633765.html

你可能感兴趣的文章
base64字符串转化成图片
查看>>
关于同步异步阻塞非阻塞的理解(摘自)
查看>>
git使用常见问题
查看>>
mysql安装(centos7)
查看>>
关于mysql数据库连接异常处理
查看>>
jedis异常Broken pipe (Write failed)
查看>>
zookeeper安装(linux)
查看>>
MySQL导入sql文件,过大导致错误
查看>>
设计模式
查看>>
idea快捷键(最常用)
查看>>
sftp安装(linux)
查看>>
java第三方工具包
查看>>
bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException
查看>>
mysql引擎与物理文件
查看>>
IOC&AOP
查看>>
升级 phpStudy 中 MySQL 版本至 5.7.17
查看>>
php发送邮件
查看>>
adminMongo:mongoDB node GUI(mongoDB图形化界面)
查看>>
有点懵!
查看>>
Node +FastDFS 实现文件的上传下载
查看>>