一点一点看JDK源码(五)java.util.ArrayList 后篇之SubList

liuyuhang原创,未经允许禁止转载

本文举例使用的是JDK8的API

目录:一点一点看JDK源码(〇)

SubList可以将一个数组根据index拆分为多个数组,使用多线程对于数组进行遍历

未使用多线程的代码比较简单,代码示例如下:

 package com.FM.ArrayListStudy;

 import java.util.ArrayList;
import java.util.List; public class SubListInArrayListStudy {
public static void main(String[] args) {
// 初始化list
ArrayList<Integer> list01 = new ArrayList<Integer>();
for (int i = 0; i < 20; i++) {//除4无余数
list01.add(i + 1);
}
ArrayList<Integer> list02 = new ArrayList<Integer>();
for (int i = 0; i < 30; i++) {//除4有余数
list02.add(i + 1);
} int size1 = list01.size();
int last11 = size1/4;
int last12 = size1/4*2;
int last13 = size1/4*3; int size2 = list02.size();
int last21 = size2/4;
int last22 = size2/4*2;
int last23 = size2/4*3; List<Integer> subList11 = list01.subList(0, last11);
List<Integer> subList12 = list01.subList(last11, last12);
List<Integer> subList13 = list01.subList(last12, last13);
List<Integer> subList14 = list01.subList(last13, size1); List<Integer> subList21 = list02.subList(0, last21);
List<Integer> subList22 = list02.subList(last21, last22);
List<Integer> subList23 = list02.subList(last22, last23);
List<Integer> subList24 = list02.subList(last23, size2); System.out.println(subList11+" size: "+subList11.size());
System.out.println(subList12+" size: "+subList12.size());
System.out.println(subList13+" size: "+subList13.size());
System.out.println(subList14+" size: "+subList14.size());
System.out.println("-=-=-=-=-=-=-=");
System.out.println(subList21+" size: "+subList21.size());
System.out.println(subList22+" size: "+subList22.size());
System.out.println(subList23+" size: "+subList23.size());
System.out.println(subList24+" size: "+subList24.size()); }
}

运行结果

使用多线程方式的代码连接在此,只是并非使用subList,自行修改

 一点一点看JDK源码(五)java.util.ArrayList 后篇之Spliterator

以上!!

一点一点看JDK源码(五)java.util.ArrayList 后篇之SubList的更多相关文章

  1. JDK1.8源码(五)——java.util.ArrayList 类

    关于 JDK 的集合类的整体介绍可以看这张图,本篇博客我们不系统的介绍整个集合的构造,重点是介绍 ArrayList 类是如何实现的. 1.ArrayList 定义 ArrayList 是一个用数组实 ...

  2. 一点一点看JDK源码(五)java.util.ArrayList 后篇之forEach

    一点一点看JDK源码(五)java.util.ArrayList 后篇之forEach liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看JDK源码(〇) 代 ...

  3. 一点一点看JDK源码(五)java.util.ArrayList 后篇之sort与Comparator

    一点一点看JDK源码(五)java.util.ArrayList 后篇之sort与Comparator liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看JD ...

  4. 一点一点看JDK源码(五)java.util.ArrayList 后篇之Spliterator多线程遍历

    一点一点看JDK源码(五)java.util.ArrayList 后篇之Spliterator多线程遍历 liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看J ...

  5. 一点一点看JDK源码(五)java.util.ArrayList 后篇之removeIf与Predicate

    一点一点看JDK源码(五)java.util.ArrayList 后篇之removeIf与Predicate liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点 ...

  6. JDK1.8源码(五)——java.util.Vector类

    JDK1.8源码(五)--java.lang. https://www.cnblogs.com/IT-CPC/p/10897559.html

  7. JDK1.8源码(一)——java.util.ArrayList

      ArrayList 定义 ArrayList 是一个用数组实现的集合,支持随机访问,元素有序且可以重复. public class ArrayList<E> extends Abstr ...

  8. JDK1.8源码(六)——java.util.ArrayList类

    ArrayList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了RandomAccess接口,支持快速随机访问,实际上就是通过下标序号进行快速访问,实现了Clonea ...

  9. 一点一点看JDK源码(〇)

    一点一点看JDK源码(〇) liuyuhang原创,未经允许进制转载 写在前面: 几乎所有的大神都会强调看源码,也强调源码的重要性: 但是如何看源码,源码看什么?看了什么用?看了怎么用? 困扰很多人, ...

随机推荐

  1. python logging的应用

    #-*-coding:utf-8-*-#util import logging import logging from logging.handlers import RotatingFileHand ...

  2. JavaScript的进阶之路(一)

    JavaScript由ECMAScript BOM DOM三部分组成 ECMAScript重要版本1,3,5,6,提供核心语言功能 DOM提供访问和操作网页内容的方法和接口 BOM提供与浏览器交互的的 ...

  3. sass语法一(变量篇)

    文件后缀名 sass有两种后缀名的文件:一种后缀名为sass,不使用大括号和分号:另一种是我们这里使用的scss文件,这种和我们平时使用的css文件格式差不多,使用大括号和分号. //后缀名为sass ...

  4. Ubuntu 18 使用docker安装rancher/server:stable并运行kubernetes

    1.安装docker sudo apt-get install docker.io docker的版本:Docker version 17.12.1-ce 2.安装virtualbox-qt,因为vi ...

  5. odps编写UDF的实现

    问题 尝试写一个UDF,参数支持输入x,y与一个Polygon,返回结果是(x,y)是否在输入的Geometry之内? 环境 eclipse odps 插件 jts包:jts-1.8.jar 解法 i ...

  6. 【读书笔记】思维导图 Talk Like Ted

  7. php 环境搭配 脚本模式(1)

    php介绍目标1:<?phpecho 'hello world'; //配置好了apacheecho '<br/> 现在时间:" .date(’Y-m-d H:i:s‘)“ ...

  8. html的文件控件<input type="file">样式的改变

    一直以来,<input type="file">上传文件标签默认样式都是让人不爽的,使用它多要给它整整容什么的,当然如果用ui插件还比较方便,不能就自己来操刀实践一下! ...

  9. SQL Server ->> 时间函数: EOMONTH, DATEFROMPARTS, TIMEFROMPARTS, DATETIMEFROMPARTS, DATETIMEOFFSETFROMPARTS

    上面几个函数都是SQL Server 2012新增的时间函数. EOMONTH 返回传入时间的月结束日,返回数据类型为DATE SELECT EOMONTH(GETDATE()) 结果为 DATEFR ...

  10. iOS文件处理类

    iOS文件处理类 这是一个用来简化iOS中关于文件操作的一个类,所有方法都为类方法. Source File.h // // File.h // FileManager // // http://ho ...