java-Array数组常用操作例子(基础必备)
package com.net.xinfang.reflect; import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;
import java.util.Set; import org.apache.commons.lang.ArrayUtils; public class array001 {
/***
* 数组对象学习
*/
public void StrArray() {
String[] str = new String[] { "我", "是", "数组" };
// String[] str={ "我", "是", "数组" };
System.out.println(str.length);// 输出数组长度
boolean b = Arrays.asList(str).contains("我");// 转换为list再判断是否包含
if (b) {
System.out.println("exist");
}
// for遍历输出数组
for (int i = 0; i < str.length; i++) {
System.out.println(str[i]);
}
// foreach遍历输出数组
for (String j : str) {
System.out.println(j);
}
int arr[][] = new int[][] { { 1 }, { 2, 3 }, { 4, 5, 6 } }; // 二维数组
// for循环遍历二维数组。
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j]);
}
System.out.println();
}
// foreach语句遍历二维数组。
for (int x[] : arr) { // 外层遍历得到一维数组
for (int e : x) { // 内层遍历得到数组元素
System.out.print(e);
}
System.out.println();
}
// 连接两个数组
int[] arr1 = { 1, 2 };
int[] arr2 = { 3 };
int[] combArr = ArrayUtils.addAll(arr1, arr2);
for (int k : combArr) {
System.out.println(k);
}
// 数组逆向输出
int[] arra = { 1, 2, 3 };
ArrayUtils.reverse(arra);
System.out.println(Arrays.toString(arra));
// int数组转换为String
int[] array3 = { 9, 0 };
String arrStrings = Arrays.toString(array3);
System.out.println(arrStrings);
// 将数组转换ArrayList动态数组
ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(str));
Set<String> set = new HashSet<String>(Arrays.asList(str));// 转换为set集合
System.out.println(set);
System.out.println(arrayList);
// 将数组转换为数组
String[] array2 = new String[] { "黄渤", "张艺兴", "孙红雷" };
// 方法 1.
List<String> list = new ArrayList<String>();
for (int i = 0; i < array2.length; i++) {
list.add(array2[i]);
}
System.out.println(list);
String[] arrStrings2 = { "1", "2", "3" };
// 方法 2.
List<String> list2 = java.util.Arrays.asList(arrStrings2);
System.out.println(list2);
// 填充数组
int[] arr3 = new int[2];
Arrays.fill(arr3, 10); // 将数组全部填充10
// 遍历输出
for (int i = 0; i < arr3.length; i++) {
System.out.println(arr3[i]);
}
// 数组排序
int[] arr4 = { 3, 7 };
Arrays.sort(arr4);
for (int i = 0; i < arr4.length; i++) {
System.out.println(arr4[i]);
}
// 比较两个数组
int[] arr9 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
boolean arr10 = Arrays.equals(arr4, arr9);
System.out.println(arr10);
// 数组去重
int[] arr11 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 3, 2, 4, 5, 6, 7, 4, 32, 2, 1, 1, 4, 6, 3 };
// 利用set的特性
Set<Integer> set2 = new HashSet<Integer>();
for (int i = 0; i < arr11.length; i++) {
set2.add(arr11[i]);
}
System.out.println(set2);
int[] arr12 = new int[set2.size()];
int j = 0;
for (Integer i : set2) {
arr12[j++] = i;
}
System.out.println(Arrays.toString(arr12));
// 求数组的最大值和最小值
int max = arr11[0];
for (int i = 1; i < arr11.length; i++) {
if (arr11[i] > max) {
max = arr11[i];
}
}
System.out.println("Max is " + max);
// 计算最小值
int min = arr11[0];
for (int i = 0; i < arr11.length; i++) {
if (arr11[i] < min) {
min = arr11[i];
}
}
System.out.println("Min is " + min);
} // 递归函数字符串反转
public String reverse(String str) {
if ((null == str) || (str.length() <= 1)) {
return str;
}
return new StringBuilder(str).reverse().toString();
} // 倒序输出
public void reversa(String str) {
for (int i = str.length() - 1; i >= 0; i--) {
char c = str.charAt(i);
System.out.println(c);
}
} public String reverse3(String s) {
char[] array = s.toCharArray(); // 将string类型参数转化为char[]类型参数
String reverse = ""; // 注意这是空串,不是null
for (int i = array.length - 1; i >= 0; i--)
reverse += array[i];
return reverse;
} public String reverse2(String s) {
int length = s.length();
String reverse = "";
for (int i = 0; i < length; i++)
reverse = s.charAt(i) + reverse;// 字符串拼接先来排后面
return reverse;
} // 字符转换为数组,二分法
public void reversb(String str) {
char[] strArray = str.toCharArray();// 将字符串转换为数组
int len = strArray.length;
char temp;
for (int i = 0; i < len / 2; i++) { // 从中间向两边对换
temp = strArray[i];
strArray[i] = strArray[len - i - 1];
strArray[len - i - 1] = temp;
}
String strAfter = String.valueOf(strArray);// 数组转换为字符串
System.out.println(strAfter);
} // 选择排序(选择第一个与第二个比较,大的排后面,依次类推)
public void SelectSort(int[] a) {
for (int i = 0; i < a.length - 1; i++) {
for (int j = i + 1; j < a.length; j++) {
if (a[i] > a[j]) {
// 交换两个值
int temp = a[j];
a[j] = a[i];
a[i] = temp;
}
}
}
for (int k : a) {
System.out.print(k);
}
} // 冒泡排序(第1个与第2个比较 )
public void bubblSort(int a[]) {
for (int i = 0; i < a.length - 1; i++) {
for (int j = 0; j < a.length - 1 - i; j++) {
if (a[j] > a[j + 1]) {
int temp = a[j + 1];
a[j + 1] = a[j];
a[j] = temp;
}
}
}
for (int k : a) {
System.out.print(k);
}
} // 遍历判断查找
public int oneByoneSearch(int[] a, int value) {
for (int i = 0; i < a.length; i++) {
if (a[i] == value) {
return i;
}
}
return -1;
} // 二分查找
public int halfSearch2(int[] a, int value) {
int left = 0;
int right = a.length - 1;
int mid;
while (left <= right) {
mid = (left + right) >> 1;
if (a[mid] == value) {
return mid;
} else if (a[mid] > value) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return -1;
} public static void main(String args[]) {
array001 ay = new array001();
ay.StrArray();
String a = "abc";
System.out.println(ay.reverse(a));
ay.reversa(a);
ay.reversb(a);
ay.reverse3(a);
int b[] = { 1, 3, 5, 6 };
ay.SelectSort(b);
ay.halfSearch2(b, 3);
ay.bubblSort(b);
ay.oneByoneSearch(b, 5);
// 最简单的方法实现字符串反转
@SuppressWarnings("resource")
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
String line = in.nextLine();// next()是遇到空格;nextLine()是遇到回车
StringBuffer sb = new StringBuffer(line);
sb.reverse();
System.out.println(sb.toString());
}
} }
java-Array数组常用操作例子(基础必备)的更多相关文章
- js,jQuery数组常用操作小结
一.js中数组常用操作小结 (1) shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift() ...
- 数组toString()方法,数组常用操作
int[] arr ={1,2,3,4,5}; String arrString = Arrays.toString(arr); //输出[I@7150bd4d System.out.println( ...
- Linux Shell数组常用操作详解
Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...
- Java学习笔记十:Java的数组以及操作数组
Java的数组以及操作数组 一:什么是数组: 数组可以理解为是一个巨大的“盒子”,里面可以按顺序存放多个类型相同的数据,比如可以定义 int 型的数组 scores 存储 4 名学生的成绩 数组中的元 ...
- 快学Scala 第三课 (定长数组,变长数组, 数组循环, 数组转换, 数组常用操作)
定长数组定义: val ar = new Array[Int](10) val arr = Array("aa", "bb") 定长数组赋值: arr(0) = ...
- java基础之数组常用操作
常用的对数组进行的操作 1.求数组中最大值,最小值 思路:假设下标为0的元素是最大值,遍历数组,依次跟max进行比较,如果有元素比这个max还大,则把这个值赋给max.最小值同样 public cla ...
- JavaScript数组常用操作总结
我们在日常开发过程中,使用到原生 JavaScript的时候,有时候会频繁的对数组进行操作,今天我把工作以来,经常用到的有关 JavaScript数组的方法总结一下,方便日后工作的时候查找使用! 一. ...
- Java Array数组 遍历 四种方式(包含 Lambda 表达式遍历)
示例代码如下: package com.miracle.luna.lambda; import java.util.Arrays; /** * @Author Miracle Luna * @Date ...
- Java Array数组使用详解
本文主要讲解java中array数组使用,包含堆.栈内存分配及区别 1.动态初始化 package myArray; /* * 堆:存储的是new出来的东西,实体,对象 * A 每个对象都有地址值 * ...
随机推荐
- 进程PID 与PPID
# 同一个程序执行多次是多个进程 import time import os print('爹是:',os.getppid()) #查看父进程 print('me是: ',os.getpid()) # ...
- Visible Trees HDU - 2841
Visible Trees Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- 【BZOJ4126】【BZOJ3516】【BZOJ3157】国王奇遇记 线性插值
题目描述 三倍经验题. 给你\(n,m\),求 \[ \sum_{i=1}^ni^mm^i \] \(n\leq {10}^9,1\leq m\leq 500000\) 题解 当\(m=1\)时\(a ...
- 阿里云上,Ubuntu下配置Nginx,在tomcat中加了https协议就不可以了
问题 阿里云上,Ubuntu服务器,本来部署的是tomcat,并且使用了https 协议.后来为了静态资源分离集成了 nginx,nginx代理跳转到 tomcat.刚开始直接访问http 网址发现, ...
- python学习日记(函数--装饰器)
楔子 前提,我有一段代码(一个函数). import time def run_time(): time.sleep(0.1) print('我曾踏足山巅') 需求1:现在,我想计算这段代码的运行时间 ...
- 「浙大ACM」图森未来杯游记一篇以及简易口胡题解
前言 蒟蒻有参加了ACM比赛,这一次有适合HY和慕容宝宝大佬一起比的,他们好巨啊,把我带飞了. 又是窝掌机,QAQ,他们仗着自己巨,就欺负窝... 我又打了\(4\)个小时的代码,而且那个键盘太恶心了 ...
- Dynamic CRM 2015学习笔记(1)Azure 上安装 CRM 2015
今天终于在Azure上安装成功了CRM 2015,下面简单介绍下安装过程,以及出现问题的解决: 一. 配置AD, 安装IIS 参考下面的link,里面有详细的配置步骤 http://www.c-sha ...
- bzoj3959(LCT)
题目描述 某校开展了同学们喜闻乐见的阳光长跑活动.为了能“为祖国健康工作五十年”,同学们纷纷离开寝室,离开教室,离开实验室,到操场参加3000米长跑运动.一时间操场上熙熙攘攘,摩肩接踵,盛况空前. 为 ...
- UVA10559 Blocks(区间dp)
有n个带有颜色的方块,没消除一段长度为x的连续的相同颜色的方块可以得到x^2的分数,让你用一种最优的顺序消除所有方块使得得分最多. 输入格式 第一行包含测试的次数t(1≤t≤15) 每个案例包含两行. ...
- docker命令篇
基础命令: 镜像: 获取镜像 $ docker pull centos:7 下拉自己仓库镜像,在后面仓库部分会讲到. 列出镜像: $ docker image ls 删除镜像: $ docker im ...