数组创建的方法有 int [ ] num = new in [4 ]; int [ ] num = {1,2,3,4}; String [ ] cArray = new String[ ]{"a","b","c","d","e"}
数组的长度是固定的,当你声明一个数组时,他的长度就要给他添加上
检查一个数组存在某个字符
String[] stringArray = { "a", "b", "c", "d", "e" };
boolean b = Arrays.asList(stringArray).contains("a");
System.out.println(b); //true
连接两个数组
int[] intArray = { 1, 2, 3, 4, 5 };
int[] intArray2 = { 6, 7, 8, 9, 10 };
int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);
for (int i = 0; i < combinedIntArray.length; i++) {
System.out.println(combinedIntArray[i]); //1 2 3 4 5 6 7 8 9 10
}
把提供的数组元素放入一个字符串
String j = StringUtils.join(new String[] { "a", "b", "c" }, ", ");
System.out.println(j);
// a, b, c
String j = StringUtils.join(new String[] { "a", "b", "c" });
//abc
移除数组中的元素
int[] intArray = { 1, 2, 3, 4, 5 };
int[] removed = ArrayUtils.removeElement(intArray, 3);
System.out.println(Arrays.toString(removed)); // 1 2 4 5
逆向一个数组
int[] intArray = { 1, 2, 3, 4, 5 };
ArrayUtils.reverse(intArray);
System.out.println(Arrays.toString(intArray)); //5 4 3 2 1
将一个数组列表转换为数组
String[] stringArray = { "a", "b", "c", "d", "e" };
ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray)); 将数组转换集合
String[] stringArr = new String[arrayList.size()]; 将集合转换数组
arrayList.toArray(stringArr);
for (String s : stringArr)
System.out.println(s); //a b c d e
将整数转换为字节数组
byte[] bytes = ByteBuffer.allocate(4).putInt(8).array();
for (byte t : bytes) {
System.out.format("0x%x ", t); //0x0 0x0 0x0 0x8
}
/**测试 toCharArray( )方法 */
public static void testToCharArray(){
String str="abcdefgh";
char[] strArray = str.toCharArray();
for (int i = 0; i < strArray.length; i++) {
System.out.print(strArray[i]+" ");
}
}
//结果 a b c d e f g h
二维数组
int [] [] num=new int [5] [] ; int a[][] = {{1,2}, {3,4,5,6}, {7,8,9}};
二维数组的第一个 [ ]中要填写长度 第二个当你不确定长度时,可以不写
int a[][] = {{1,2}, {3,4,5,6}, {7,8,9}};
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.println(a[i][j]);
}
} //1 2 3 4 5 6 7 8 9
//对数组进行排序
public static void main(String args[])
{
int[] a={1,4,-1,5,0};
Arrays.sort(a);
//数组a[]的内容变为{-1,0,1,4,5}
for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
}
import java.util.*;
public class ArrayTest {
public static void main(String[] args) {
//声明数组
String [] arr;
int arr1[];
//初始化数组
int arr2[]=new int[]{1,2,3,4,5};
String[] array1={"马超","马云","关羽","刘备","张飞"};
String[] array2=new String[]{"黄渤","张艺兴","孙红雷","小猪","牙哥","黄磊"};
String[] array=new String[5];
//查看数组的长度
int length=array1.length;
System.out.println("length: "+array1.length);//length: 5
//输出数组
// System.out.println(array1); //结果:[Ljava.lang.String;@32f22097
System.out.println("arr2: "+Arrays.toString(arr2));//arr2: [1, 2, 3, 4, 5]
//遍历数组
for (int i = 0; i < array1.length; i++) {
System.out.println(array1[i]);//马超 马云 关羽 刘备 张飞
}
//int数组转成string数组
int[] array3={1,2,3,4,5,6,7,8,9,0};
String arrStrings=Arrays.toString(array3);
System.out.println(arrStrings);//[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
//从array中创建arraylist
ArrayList<String> arrayList=new ArrayList<String>(Arrays.asList(array1));
System.out.println(arrayList);//[马超, 马云, 关羽, 刘备, 张飞]
//数组中是否包含某一个值
String a="马超";
if (Arrays.asList(array1).contains(a)) {
System.out.println("马超在这里");//马超在这里
}
//将数组转成set集合
Set<String> set=new HashSet<String>(Arrays.asList(array2));
System.out.println(set);//[黄磊, 牙哥, 小猪, 张艺兴, 黄渤, 孙红雷]
//将数组转成list集合
List<String> list=new ArrayList<String>();
for (int i = 0; i < array2.length; i++) {
list.add(array2[i]);
}
String[] arrStrings2={"1","2","3"};
List<String > list2=java.util.Arrays.asList(arrStrings2);
System.out.println("===arr2===");
System.out.println(list2);//[1, 2, 3]
//Arrays.fill()填充数组
int[] arr3=new int[5];
Arrays.fill(arr3, 10); //将数组全部填充10
System.out.println("===arr3===");
for (int i = 0; i < arr3.length; i++) {
System.out.println(arr3[i]);//10 10 10 10 10
}
//数组排序
int[] arr4 = {3, 7, 2, 1, 9};
Arrays.sort(arr4);
System.out.println("===arr4===");
for (int i = 0; i < arr4.length; i++) {
System.out.println(arr4[i]);//1 2 3 7 9
}
int[] arr5 = {3, 7, 2, 1, 9,3,45,7,8,8,3,2,65,34,5};
Arrays.sort(arr5, 1, 4); //从第几个到第几个之间的进行排序
System.out.println("===arr5===");
for (int i = 0; i < arr5.length; i++) {
System.out.println(arr5[i]);
}
//复制数组
int[] arr6 = {3, 7, 2, 1};
int[] arr7=Arrays.copyOf(arr6, 10); //指定新数组的长度
int[] arr8=Arrays.copyOfRange(arr6, 1, 3); //只复制从索引[1]到索引[3]之间的元素(不包括索引[3]的元素)
System.out.println("===arr8===");
for (int i = 0; i < arr8.length; i++) {
System.out.println(arr8[i]);
}
//比较两个数组
int[] arr9 = {1, 2, 3, 4,5,6,7,8,9,0};
boolean arr10=Arrays.equals(arr6, arr9);
System.out.println("===arr10===");
System.out.println(arr10);
//去重复
//利用set的特性
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<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("===arr12===");
System.out.println(Arrays.toString(arr12));
int[] arr13 = {10, 2, 3, 4,5,6,7,8,9,0,3,2,4,5,6,7,4,32,2,1,1,4,6,3};
//计算最大值
int max = arr13[0];
for (int i = 1; i < arr13.length; i++) {
if (arr13[i] > max) {
max = arr13[i];
}
}
System.out.println("Max is " + max);
//计算最小值
int min = arr13[0];
for (int i = 0; i < arr13.length; i++) {
if (arr13[i]<min) {
min = arr13[i];
}
}
System.out.println("Min is " + min);
}
}
length: 5
arr2: [1, 2, 3, 4, 5]
马超
马云
关羽
刘备
张飞
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
[马超, 马云, 关羽, 刘备, 张飞]
马超在这里
[黄磊, 牙哥, 小猪, 张艺兴, 黄渤, 孙红雷]
===arr2===
[1, 2, 3]
===arr3===
10
10
10
10
10
===arr4===
1
2
3
7
9
===arr5===
3
1
2
7
9
3
45
7
8
8
3
2
65
34
5
===arr8===
7
2
===arr10===
false
[0, 1, 32, 2, 3, 4, 5, 6, 7, 8, 9]
===arr12===
[0, 1, 32, 2, 3, 4, 5, 6, 7, 8, 9]
Max is 32
Min is 0
获取某个字符串中重复最长的字符
/** 根据一段字符串将他转化成char数组 */
public static String[] getCharArray(String str) {
int length = str.length();
String[] strArray = new String[length];
for (int i = 0; i < strArray.length; i++) {
int begin = length - 1 - i;
strArray[i] = str.substring(begin);
}
return strArray;
}
public static void test(String str) {
//获取数组
String[] strArray = getCharArray(str);
int length = strArray.length;
//把数组转换成list集合
List<String> list = Arrays.asList(strArray);
Collections.sort(list);
int count = -1;// 重复的长度
int index = -1;// 字符串在list中的下标
for (int i = 0; i < length - 1; i++) {
char[] str1 = list.get(i).toCharArray();
char[] str2 = list.get(i + 1).toCharArray();
int len1 = str1.length;
int len2 = str2.length;
//因为str1 和 str2 是不同的两个字符串,所以不能确定数组的长度是相同的所以要声明2个变量
int k1 = 0, k2 = 0;
//判断首字母是否相同
if (str1[0] == str2[0]) {
//判断数组的长度是否已经达到上限,并且要两个数组的字母相同
//如果相同就比较下一个,知道不相同为止
while (k1 < len1 && k2 < len2 && str1[k1] == str2[k2]) {
k1++;
k2++;
}
//判断相同的数组长度是否比已经检查出来的相同的字符串长。如果长就把长度和字符串在list中的下标记录下来
if (k1 > index) {
count = k1;//获取最新的长度
index = i;//获取最新的字符串的下标
}
}
}
//判断是否存在重复的字符串
if(index!=-1){
System.out.println("最长的重复字符串:"+list.get(index).substring(0, count));
}else{
System.out.println("没有重复的字符串");
}
}