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. 栈习题(1)-对于任意的无符号的的十进制数m,写出将其转换为十六进制整数的算法(正确输出即可)

    /*对于任意的无符号的的十进制数m,写出将其转换为十六进制整数的算法(正确输出即可)*/ /* 算法思想:利用辗转取余法,每次都将余数存入栈中,直到被除数等0,退出循环. 输出栈里的内容即可 */ v ...

  2. authenticate的执行流程与重写

    流程 1.authenticate调用的是_get_backends函数 def authenticate(request=None, **credentials): for backend, bac ...

  3. while 语句的逻辑

    # i =3# username = '大天天'# password = 123# while i > 0:# name = input('请输入你的名字:')# i -= 1# if name ...

  4. 聊一聊,React开发中应该规避的点

    原文永久链接: https://github.com/AttemptWeb..... 下面说到的React开发中注意的问题,部分是自己遇到过的点,部分是收集的,也算是React代码优化部分,这次做一个 ...

  5. .NET子页Main页面实例(UI页面)

    <%@ Page Language="C#"  MasterPageFile="~/MasterPageDefault.master"   AutoEve ...

  6. 扩展JS

    //JS的扩展方法: 1 定义类静态方法扩展 2 定义类对象方法扩展            var aClass = function(){} //1 定义这个类的静态方法            aC ...

  7. angularjs 动态加载指令------编译服务$compile

    场景: 我们写了一个自定义的指令,这条指令需要一些数据,而这些数据需要在某些操作之后才能就绪,这时候,我们就需要在数据就绪之后,动态加载指令. 示例: js: $scope.$watch('repor ...

  8. Centos6.10编译安装php-7.1.12并安装redis模块

    1.服务器初始化 yum update -yyum install epel-release -yyum install gcc gcc-c++ wget lsof lrzsz telnet -y 2 ...

  9. 修改redhat7默认显示语言从中文为英文

    [delmore@localhost Desktop]$ su                               //切换到最高权限 Password:                    ...

  10. 软件设计师【UML】

    一.概述 二.核心概念 1.用例图 1.包含关系 当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示他们.其中这个提取出来的公共用例称为抽象用例,而把原始用例称为基本用例或基础用例. ...