一点一点看JDK源码(五)java.util.ArrayList 后篇之SubList
一点一点看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的更多相关文章
- JDK1.8源码(五)——java.util.ArrayList 类
关于 JDK 的集合类的整体介绍可以看这张图,本篇博客我们不系统的介绍整个集合的构造,重点是介绍 ArrayList 类是如何实现的. 1.ArrayList 定义 ArrayList 是一个用数组实 ...
- 一点一点看JDK源码(五)java.util.ArrayList 后篇之forEach
一点一点看JDK源码(五)java.util.ArrayList 后篇之forEach liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看JDK源码(〇) 代 ...
- 一点一点看JDK源码(五)java.util.ArrayList 后篇之sort与Comparator
一点一点看JDK源码(五)java.util.ArrayList 后篇之sort与Comparator liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看JD ...
- 一点一点看JDK源码(五)java.util.ArrayList 后篇之Spliterator多线程遍历
一点一点看JDK源码(五)java.util.ArrayList 后篇之Spliterator多线程遍历 liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看J ...
- 一点一点看JDK源码(五)java.util.ArrayList 后篇之removeIf与Predicate
一点一点看JDK源码(五)java.util.ArrayList 后篇之removeIf与Predicate liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点 ...
- JDK1.8源码(五)——java.util.Vector类
JDK1.8源码(五)--java.lang. https://www.cnblogs.com/IT-CPC/p/10897559.html
- JDK1.8源码(一)——java.util.ArrayList
ArrayList 定义 ArrayList 是一个用数组实现的集合,支持随机访问,元素有序且可以重复. public class ArrayList<E> extends Abstr ...
- JDK1.8源码(六)——java.util.ArrayList类
ArrayList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了RandomAccess接口,支持快速随机访问,实际上就是通过下标序号进行快速访问,实现了Clonea ...
- 一点一点看JDK源码(〇)
一点一点看JDK源码(〇) liuyuhang原创,未经允许进制转载 写在前面: 几乎所有的大神都会强调看源码,也强调源码的重要性: 但是如何看源码,源码看什么?看了什么用?看了怎么用? 困扰很多人, ...
随机推荐
- 纪念一个神坑——react-native-echarts
一.问题 在rn项目里引用的时候,本该显示图表的界面显示出了一堆html... 二.原因 官方没给配置好 三.解决 1./node_modules/native-echarts/src/compone ...
- [摘]全文检索引擎Solr系列—–全文检索基本原理
原文链接--http://www.importnew.com/12707.html 全文检索引擎Solr系列—–全文检索基本原理 2014/08/18 | 分类: 基础技术, 教程 | 2 条评论 | ...
- OSGEarth加载 geoserver 发布 TMS
geoserver配好数据并用自带的gwc切片好后, 访问 http://localhost:9999/geoserver/gwc/service/tms/1.0.0/ 在OsgEarth的earth ...
- MySQL主从复制与读写分离概念及架构分析
1.MySQL主从复制入门 首先,我们看一个图: 影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中. 假设,实时的将变化了的日志系统中的数据库事件操作,在MYSQL-A的33 ...
- [算法练习]Two Sum
题目说明: Given an array of integers, return indices of the two numbers such that they add up to a speci ...
- JNLP文件具体说明编辑
JNLP(Java Network Launching Protocol )是java提供的一种可以通过浏览器直接执行java应用程序的途径,它使你可以直接通过一个网页上的url连接打开一个java应 ...
- linux 系统开机自启执行 操作的配置
1 linux 服务注册 service文件 在service文件中设置变量和环境变量 [Unit] Description= #服务描述 After=syslog.target #服务启动依赖 [S ...
- android启动应用
private void openApp(String packageName) { PackageInfo pi = getPackageManager().getPackageInfo(packa ...
- IE浏览器 div或者其他容器的height属性无效 滚动条问题解决办法
1.height设置定值是功能好使的 但是如果在不同分辨率的电脑上运行程序 会出现样式上的偏差 2.height的百分比是根据父级来的 所以将父级的height设置好(如果当前容器上方有很多父级 ...
- 【Leetcode】【Medium】Flatten Binary Tree to Linked List
Given a binary tree, flatten it to a linked list in-place. For example,Given 1 / \ 2 5 / \ \ 3 4 6 T ...