ArrayList 集合  也可称作动态数组(长度可变),在新建的时候是没有默认长度的,在新增数据长度小于10的时候,ArrayList 的长度会自动设置为10

//了解更多可以按住Ctrl 再点击你需要查看的方法或者类名,  查看List源代码,ArrayList源代码

public static void main(String[] args) throws Exception {
  Arraylist    新增数据时长度是10   当长度为10的时候 增长是如何增长的?
  增长因子数位0.5倍,向下取整数。
  ArrayList arr= new ArrayList();
  arr.add("a");//给集合赋值
  arr.add("b");
  arr.add("c");
  arr.add("d");
  arr.add("e");
  System.out.println(arr.size());    //ArrayList 集合可以有重复对象
  System.out.println("-------下标输出方式");
  //下标输出方式
  for(int i=0;i<arr.size();i++) {
   System.out.println(arr.get(i));
  }
  System.out.println("-------foreach输出(jdk>1.5)");
  //foreach输出(jdk>=1.5)
  for(Object o:arr) {
   System.out.println(o);
  }
  System.out.println("-------jdk1.8的语法糖");
  //jdk1.8语法糖
  arr.forEach(x->System.out.println(x));
  System.out.println("-------jdk1.8的迭代器");
  //迭代器
  Iterator it=arr.iterator();
  while(it.hasNext()) {
   System.out.println(it.next());
  }
  
  ArrayList arr= new ArrayList();
  for(int i=0;i<20;i++) {
   print(arr);
   arr.add(i);
  }

//反向输出必须是先正向输出再反向输出。否则只会有正向没有反向输出
  ArrayList arr= new ArrayList(5);
  arr.add("a");
  arr.add("b");
  arr.add("c");
  arr.add("d");
  arr.add("e");
  ListIterator list=arr.listIterator();
  System.out.println("----------------下");
  while(list.hasNext()) {
   System.out.println(list.next());
  }
  System.out.println("----------------上");
  while(list.hasPrevious()) {
   System.out.println(list.previous());
  }
  
  //栈  可以比喻成一个车厢  最大的容量  3M
  //堆  可以比喻成一个火车  将内存中的零散的空间组成的一张链式表格
  //实现自定义的栈  mystack

}

//使用反射查看属性
 static void print(ArrayList   arraylist) throws Exception {
  Class c=arraylist.getClass();
  Field  elementData = c.getDeclaredField("elementData");
  elementData.setAccessible(true);
  Object[] objects=(Object[]) elementData.get(arraylist);
  System.out.println(objects.length);
 }

ArrayList 集合的几种遍历的方法的更多相关文章

  1. Java中List集合的三种遍历方式(全网最详)

    List集合在Java日常开发中是必不可少的,只要懂得运用各种各样的方法就可以大大提高我们开发的效率,适当活用各种方法才会使我们开发事半功倍. 我总结了三种List集合的遍历方式,下面一一来介绍. 首 ...

  2. ArrayList集合概述和基本使用和ArrayList集合的常用方法和遍历

    什么是ArrayList类 java.util.ArrayList 是大小可变的数组的实现,存储在内的数据称为元素.此类提供一些方法来操作内部存储 的元素. ArrayList 中可不断添加元素,其大 ...

  3. Map集合的两种遍历方式

    Map集合:即 接口Map<K,V> map集合的两种取出方式:    1.Set<k> keyset: 将map中所有的键存入到set集合(即将所有的key值存入到set中) ...

  4. Map集合的几种遍历方式

    Map<String ,String> map=new HashMap<String,String>(); map.put("1","value1 ...

  5. Map集合的四种遍历方式

    很久以前写的代码,和上一个做比较吧!便于以后查看 import java.util.HashMap; import java.util.Iterator; import java.util.Map; ...

  6. List 三种遍历的方法

    学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象,测试代码如下: package ...

  7. Java数组、集合的三种遍历方式(包懂)

    1 for循环 for(int i = 0;i<arr.length;i++){ System.out.print(arr[i]+" "); } 2 foreach循环,这种 ...

  8. Map集合的四种遍历方式(转载)

    import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class TestMap { pu ...

  9. Map集合的4种遍历方式

    import java.util.HashMap;import java.util.Iterator;import java.util.Map; public class TestMap {    p ...

随机推荐

  1. python中将已有链接的视频进行下载

    使用python爬取视频网站时,会得到一系列的视频链接,比如MP4文件.得到视频文件之后需要对视频进行下载,本文写出下载视频文件的函数. 首先导入requests库,安装库使用pip install ...

  2. linux terminal 快捷键

    删除 快捷键 描述 Ctrl+h 删除光标位置的前一个字符(同 backspace 键功能) Ctrl+* 删除光标位置的前一个字符(同 ctrl+h 组合键功能) Ctrl+d 删除光标位置的一个字 ...

  3. Fiddler代理手机抓包

    Fiddler代理手机抓包 0. 安装Fiddler 1. 安装HTTPS证书并允许远程连接 Tools - Options 点击OK后重启Fiddler. 确保手机与当前电脑在同一局域网. 然后在手 ...

  4. ArcGIS Server SOE地图服务重启特别卡

    ArcGIS Server 服务器端扩展,SOE代码调试时,需要经常重新编译.替换地图服务中的扩展, 由于未知问题,本地开发环境包含SOE的地图服务,每次重启都需要耗费相当长的时间,大体上20多分钟, ...

  5. go语言学习---使用os.Args获取简单参数(命令行解析)

    实例1: //main package main import ( "fmt" "os" ) func main() { fmt.Println(os.Args ...

  6. NetCore踩坑记1、 一块网卡引发的血案

    公司的项目架构演进,我们也趁机尝试迁移到netcore,系列随笔讲记录我们的踩坑和填坑记录. HttpClient不行? 这是我们第一次尝试netcore 简要介绍环境 netcore2.2+aspn ...

  7. usercript and passwdcript array

    usercript and passwdcript array ######################## # nsnet_usercript # xxd -g 4 -c 16 -s +$(( ...

  8. 刚接触HTML5应该先学哪里才好?

    好吧,话不多说,直接来点干货吧! 刚接触html的小白都感觉摸不着头脑?应该怎么学习呢,其实HTML5可能对于还没有接触过的小白来说会比较的难,听起来也比较新颖.这是个什么骚东西!其实不然,这个就是构 ...

  9. 小米cc9和vivo z5 对比

    (一)大致对比 1.小米 cc9(6GB+128GB.  1899元. 白色恋人(白色)) https://item.mi.com/product/10000163.html 2.vivo Z5 (6 ...

  10. MongoDB 3.6.1集群部署

    Mongodb安装 Linux版本:CentOS release 6.9 Mongodb版本:mongodb-linux-x86_64-3.6.1.tgz 示例是在一台主机上安装mongodb集群 端 ...