package com.jiajiao.utils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
/**
* 数组操作辅助类,支持int,char,boject,String类型
*
*/
public class ArrayHelper {
/**
* 锁定创建
*/
private ArrayHelper() {
}
/**
*
* 计算数组中的单元数目或对象中的属性个数 当 arr 为 null 时返回 0。
*
* @param arr
* @return
*/
public static int sizeOf(int[] arr) {
return arr == null ? 0 : arr.length;
}
/**
*
* 合并一个或多个数组 当 arr 为 null 时返回 new int[0] 。
*
* @param arrs
* @return
*/
public static int[] merge(int[]... arrs) {
int[] result = new int[0];
if (arrs != null) {
int count = 0;
for (int i = 0; i < arrs.length; i++) {
count += arrs[i].length;
}
result = new int[count];
int arg;
int k = 0;
for (int i = 0; i < arrs.length; i++) {
if (arrs[i] == null) {
continue;
}
for (int j = 0; j < arrs[i].length; j++) {
arg = arrs[i][j];
result[k] = arg;
k++;
}
}
}
return result;
}
/**
*
* 计算数组的差集 注意: aArr 为null时 返回 bArr(可能为 null)。 bArr 为null时 返回 aArr。 无差集时返回
* new int[0];
*
* @param aArr
* @param bArr
* @return
*/
public static int[] diff(int[] aArr, int[] bArr) {
{
if (aArr == null) {
return bArr;
}
if (bArr == null) {
return aArr;
}
}
int[] cArr = new int[aArr.length + bArr.length];
int idx = 0;
/**
* 检查 a 中那些元 在 b 中不存在
*/
for (int i = 0; i < aArr.length; i++) {
if (!inArray(bArr, aArr[i])) {
cArr[idx++] = aArr[i];
}
}
/**
* 检查 b 中那些元 在 a 中不存在
*/
for (int i = 0; i < bArr.length; i++) {
if (!inArray(aArr, bArr[i])) {
cArr[idx++] = bArr[i];
}
}
//
int[] dArr = new int[idx];
System.arraycopy(cArr, 0, dArr, 0, dArr.length);
return dArr;
}
/**
*
* 返回一个数组的全复制 当 arr 为 null 时返回 new int[0] 。
*
* @param arr
* @return
*/
public static int[] copyOf(int[] arr) {
int[] carr = new int[0];
if (arr != null) {
carr = new int[arr.length];
System.arraycopy(arr, 0, carr, 0, arr.length);
}
return carr;
}
/**
*
* 返回一个数组的复制 当 arr 为 null 时返回 new int[0] 。
*
* @param arr
* @param i
* @return
*/
public static int[] copyOf(int[] arr, int i) {
int[] carr = new int[0];
if (arr != null) {
if (i > arr.length) {
i = arr.length;
}
carr = new int[i];
System.arraycopy(arr, 0, carr, 0, i);
}
return carr;
}
/**
*
* 创建一个Map,用一个数组的值作为其键名,另一个数组的值作为其值
* 当键为空或无单元时返回空Map,否则以键数组为主导填充Map。值不足时填充null。 注意:Map中键顺序并不一定与参数keys顺序相同。
*
* @param <T>
* @param <V>
* @param keys
* @param values
* @return
*/
public static <T, V> Map<T, V> combine(T[] keys, V[] values) {
Map<T, V> map = new HashMap<T, V>();
if (keys != null && keys.length > 0) {
int vsize = values == null ? 0 : values.length;
for (int i = 0; i < keys.length; i++) {
if (i >= vsize) {
map.put(keys[i], null);
} else {
map.put(keys[i], values[i]);
}
}
}
return map;
}
/**
*
* 从数组中随机取出一个或多个单元 当 arr 为 null 时返回 new int[0]。
*
* @param arr
* @return
*/
public static int[] random(int[] arr) {
if (arr == null) {
return new int[0];
}
int count = new Random().nextInt(arr.length);
count = count > 0 ? count : 1;
return random(arr, count);
}
/**
*
* 将数组打乱 当 arr 为 null 时返回 new int[0]。
*
* @param arr
* @return
*/
public static int[] shuffle(int[] arr) {
if (arr == null) {
return new int[0];
}
return random(arr, arr.length);
}
/**
*
* 随机取出固定数量的元素 如取出数量大于数组元素数则返回打乱的数组,等同于 {@link #shuffle} 当 arr 为 null 时返回
* new int[0]。
*
* @param arr
* @param count
* @return
*/
public static int[] random(int[] arr, int count) {
int[] rarr = new int[0];
if (arr != null) {
if (arr.length < count) {
count = arr.length;
}
Random random = new Random();
int i = 0;
int num = 0;
rarr = new int[count];
int[] keys = new int[count];
for (int j = 0; j < keys.length; j++) {
keys[j] = -1;
}
do {
num = random.nextInt(arr.length);
if (!inArray(keys, num)) {
keys[i] = num;
rarr[i] = arr[num];
i++;
}
} while (i < count);
}
return rarr;
}
/**
*
* 检查数组中是否存在某个值
*
* @param arr
* @param search
* @return
*/
public static boolean inArray(int[] arr, int search) {
if (arr != null) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == search) {
return true;
}
}
}
return false;
}
/**
*
* 检查数组中是否存在某几个值
*
* @param arr
* @param search
* @return
*/
public static boolean inArray(int[] arr, int[] search) {
if (search != null) {
for (int i = 0; i < search.length; i++) {
if (!inArray(arr, search[i])) {
return false;
}
}
return true;
}
return false;
}
/**
*
* 检查数组中是否存在某个值,并返回其索引键,不存在则返回 -1 。
*
* @param arr
* @param search
* @return
*/
public static int search(int[] arr, int search) {
if (arr != null) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == search) {
return i;
}
}
}
return -1;
}
/**
*
* 返回一个单元顺序相反的数组 当 arr 为 null 时返回 new int[0]。
*
* @param arr
* @return
*/
public static int[] reverse(int[] arr) {
int[] rarr = new int[0];
if (arr != null) {
rarr = new int[arr.length];
int j = 0;
for (int i = arr.length - 1; i >= 0; i--) {
rarr[j++] = arr[i];
}
}
return rarr;
}
/**
* 使用间隔符连接
*
* @param ints
* @param sep
* @return
*/
public static String join(int[] ints, String sep) {
StringBuilder strBuilder = new StringBuilder();
if (ints != null) {
for (int i = 0; i < ints.length; i++) {
strBuilder.append(ints[i]);
if (i < ints.length - 1) {
strBuilder.append(sep);
}
}
}
return strBuilder.toString();
}
/**
* 计算所有单元的合
*
* @param ints
* @param sep
* @return
*/
public static int sum(int[] ints) {
int sum = 0;
if (ints != null) {
for (int i = 0; i < ints.length; i++) {
sum += ints[i];
}
}
return sum;
}
/**
* char array tools =====================
*/
/**
*
* 计算数组中的单元数目或对象中的属性个数 当 arr 为 null 时返回 0。
*
* @param arr
* @return
*/
public static int sizeOf(char[] arr) {
return arr == null ? 0 : arr.length;
}
/**
*
* 合并一个或多个数组 当 arr 为 null 时返回 new char[0] 。
*
* @param arrs
* @return
*/
public static char[] merge(char[]... arrs) {
char[] result = new char[0];
if (arrs != null) {
char count = 0;
for (char i = 0; i < arrs.length; i++) {
count += arrs[i].length;
}
result = new char[count];
char arg;
char k = 0;
for (char i = 0; i < arrs.length; i++) {
if (arrs[i] == null) {
continue;
}
for (char j = 0; j < arrs[i].length; j++) {
arg = arrs[i][j];
result[k] = arg;
k++;
}
}
}
return result;
}
/**
*
* 计算数组的差集 注意: aArr 为null时 返回 bArr(可能为 null)。 bArr 为null时 返回 aArr。 无差集时返回
* new char[0];
*
* @param aArr
* @param bArr
* @return
*/
public static char[] diff(char[] aArr, char[] bArr) {
{
if (aArr == null) {
return bArr;
}
if (bArr == null) {
return
没有合适的资源?快使用搜索试试~ 我知道了~
基于Java和Javascript的家教系统设计源码
共992个文件
png:253个
js:214个
jsp:106个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 115 浏览量
2024-05-31
16:03:09
上传
评论
收藏 41.33MB ZIP 举报
温馨提示
家教系统项目源码,共992个文件,采用Java、Javascript、CSS和HTML等语言开发,涉及多种文件类型如PNG图片、JavaScript脚本、JSP页面、Java源代码、CSS样式表、JPG图片、GIF图片、JAR打包文件、HTML文档和SWF动画文件等。该项目是一个基于Java和Javascript的家教系统设计,旨在提供一个简洁、高效的家教管理解决方案。系统采用Java开发,项目结构清晰,采用的技术是经典的SSM框架,非常适合Java项目入门学习和企业级Java开发熟悉。
资源推荐
资源详情
资源评论
收起资源包目录
基于Java和Javascript的家教系统设计源码 (992个子文件)
api 238B
api 230B
api(1) 238B
update.bat 92B
ace.min.css 311KB
css.css 110KB
mobilecss.css 98KB
bootstrap.min.css 94KB
css_old.css 89KB
site.css 81KB
news.css 69KB
news(1).css 69KB
style.css 57KB
easyui.css 56KB
ueditor.css 43KB
jz.css 37KB
font-awesome-ie7.min.css 37KB
ace-rtl.min.css 36KB
ueditor.min.css 34KB
font-awesome.css 32KB
css114.css 31KB
home2.css 29KB
font-awesome.min.css 27KB
ace-skins.min.css 26KB
font-awesome.min.css 22KB
video-js.css 21KB
bootstrap-editable.css 21KB
style.css 20KB
image.css 18KB
video.css 15KB
layer.css 14KB
attachment.css 14KB
layer.css 13KB
icheck.css 12KB
video-js.min.css 11KB
zyUpload.css 10KB
datepicker.css 10KB
brief.css 9KB
codemirror.css 8KB
shCoreDefault.css 7KB
ace-ie.min.css 7KB
teach.css 6KB
zTreeStyle.css 6KB
laydate.css 6KB
code.css 6KB
laydate.css 6KB
datepicker-dev.css 4KB
colorbox.css 4KB
scrawl.css 4KB
datepicker.css 4KB
laydate.css 3KB
laydate.css 3KB
laydate.css 3KB
datepicker.css 3KB
laydate.css 3KB
login.css 3KB
laydate.css 3KB
laydate.css 3KB
laydate.css 3KB
datepicker.css 3KB
laydate.css 3KB
jquery.Jcrop.css 3KB
laydate.css 3KB
codemirror.css 3KB
LCalendar.min.css 3KB
main.css 3KB
layer.ext.css 3KB
base.css 3KB
easyui_style.css 3KB
bootstrap-timepicker.css 3KB
charts.css 3KB
background.css 2KB
jquery.selectlist.css 2KB
emotion.css 2KB
dialogbase.css 2KB
music.css 2KB
ui-choose.css 2KB
edittable.css 1KB
template.css 1KB
buttons.css 987B
pageSwitch.min.css 567B
webuploader.css 515B
webuploader.css 458B
help.css 389B
WdatePicker.css 182B
WdatePicker.css 144B
iframe.css 41B
Thumbs.db 18KB
Thumbs.db 4KB
Thumbs.db 3KB
Thumbs.db 3KB
.DS_Store 6KB
fontawesome-webfont.eot 69KB
fontawesome-webfont.eot 69KB
vjs.eot 3KB
UEditorSnapscreen.exe 508KB
getscript 169KB
getscript 168KB
getscript(1) 168KB
GetValidCode 2KB
共 992 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
沐知全栈开发
- 粉丝: 5681
- 资源: 5225
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Python的repo工具二次开发设计源码,支持Gitee Fork+PullRequest流程
- 基于Java语言的GeekWeather v1.1极客天气Android应用设计源码
- 基于Vue和JavaScript的ReportPlus数据报表模板设计源码
- 基于微信官方的移动Web应用UI设计源码WeUI
- 基于Java语言开发的zxzbook书城项目设计源码
- 基于Java与Shell的零售药店新零售系统设计源码
- 基于HTML/CSS/JavaScript的医生端医生-taro设计源码
- 基于C++语言的矩阵库设计源码
- 基于Java与多语言集成的web-tiny-backend设计源码
- 基于JavaScript核心技术的多语言项目His设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功