今晚回顾了一下数组的常用方法,撸了一些代码总结一下,感觉又收获不少
直接上代码吧,主要是便于自己复习和记忆
创建数组的三种方法:
//创建数组的第一种方法 int[] arr=new int[6]; //创建数组的第二种方法 int[] a = {23, 5, 65, 23, 45, 2, 4, 34, 8}; //创建数组的第三种方法 int[] b = new int[]{23,5,65,23,45,2,34,8};
判断数组是否越界
//判断数组是否越界 public static boolean isLength(int m, int arr[]) { boolean flag = false; int length = arr.length; if (m < length) { flag = true; } return flag; }
判断数组是否相等
我们可以看到判断数组是否相等是用的equals()方法
//判断数组是否相等 public static void isEquals(int a[], int b[]) { if (Arrays.equals(a, b)) { System.out.println("这两个数组相等"); } else { System.out.println("这两个数组不相等"); } }
控制台输入数组并且倒序输出
这里我用了两个方法倒序输出,利用ArrayUtils工具类的时候,出现了找不到该类的问题,该博客已经解决,出现同样问题的小伙伴可以参考一下:IDEA中找不到ArrayUtils工具类的问题
//控制台输入数组并且倒序输出 public static void putIn() { int[] arr = new int[5]; Scanner input = new Scanner(System.in); for (int i = 0; i < arr.length; i++) { System.out.println("请输入第" + (i + 1) + "个数"); arr[i] = input.nextInt(); } // for (int i = arr.length-1;i >= 0; i--) { // System.out.println("倒序输出为:" + arr[i]); // } ArrayUtils.reverse(arr); System.out.println("倒序输出为:" + Arrays.toString(arr)); }
toString方法打印数组
//toString方法打印数组 public static void arrToString(int a[]) { System.out.println(Arrays.toString(a)); }
从数组中创建一个ArrayList
//从数组中创建一个ArrayList public static void makeArraylist(String stringArray[]) { ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray)); System.out.println(arrayList); }
把一个 ArrayList 转换成数组
//把一个 ArrayList 转换成数组 public static void arrayListToArray(String stringArray[]) { 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); } }
把一个数组转换成 Set
//把一个数组转换成 Set public static void ArrayToSet(String stringArray[]) { Set<String> set = new HashSet<String>(Arrays.asList(stringArray)); System.out.println(set); }
检查数组是否包含某一个值
asList()是Arrays工具类提供的可以将一个变长参数或者数组转换成List 的方法;
字符串类String的contains方法,是用于检测指定的内容是否在string变量中存在,匹配是严格区分大小写的。
//检查数组是否包含某一个值 public static void checkSomeone(String stringArray[]) { boolean b = Arrays.asList(stringArray).contains("aa"); System.out.println(b); }
数组合并
//数组合并 public static void addArray(int a[], int b[]) { int[] sumArray = ArrayUtils.addAll(a, b); System.out.println(Arrays.toString(sumArray)); }
用指定的分隔符连接数组元素
//用指定的分隔符连接数组元素 public static void charWithArray(String stringArray[]) { String j = StringUtils.join(stringArray, "/"); System.out.println(j); }
移除数组中的元素
//移除数组中的元素 public static void removeArray(int a[]) { int[] removed = ArrayUtils.removeElement(a, 8);//新建一个数组 System.out.println(Arrays.toString(removed)); }
把 int 转换成字节数组
//把 int 转换成字节数组 public static void intToByte() { byte[] bytes = ByteBuffer.allocate(4).putInt(8).array(); for (byte t : bytes) { System.out.format("0x%x ", t); } }
下面是这次的完整代码,都写在了Array类里
package 数据结构.数组; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; import java.nio.ByteBuffer; import java.util.*; /** * @author yzh * @date 2019-08-23 21:32 */ public class Array { public static void main(String[] args) { // //创建数组的第一种方法 // int[] arr=new int[6]; // int intValue = arr[5]; // System.out.println(arr[5]); // // //创建数组的第二种方法 int[] a = {23, 5, 65, 23, 45, 2, 4, 34, 8}; int[] b = {0, 125, 90, 523}; // System.out.println(a[4]); // // //创建数组的第三种方法 // int[] b = new int[]{23,5,65,23,45,2,34,8}; // int m = 10; // boolean length = isLength(m,b); // if (length) { // System.out.println(b[m]); // }else { // System.out.println("数组越界"); // } //供下面的方法测试用 String[] stringArray = {"12", "aa", "aa", "e3", "3e3", "12"}; // // //判断数组是否相等 // isEquals(a,b); //从控制台输入并且倒序输出 // putIn(); // //toString方法打印数组 // arrToString(a); // //从数组中创建一个ArrayList // makeArraylist(stringArray); //把一个 ArrayList 转换成数组 // arrayListToArray(stringArray); //把一个数组转换成 Set // ArrayToSet(stringArray); //检查数组是否包含某一个值 // checkSomeone(stringArray); //数组合并 // addArray(a,b); //用指定的分隔符连接数组元素 // charWithArray(stringArray); //移除数组中的元素 // removeArray(a); //把 int 转换成字节数组 intToByte(); } //判断数组是否越界 public static boolean isLength(int m, int arr[]) { boolean flag = false; int length = arr.length; if (m < length) { flag = true; } return flag; } //判断数组是否相等 public static void isEquals(int a[], int b[]) { if (Arrays.equals(a, b)) { System.out.println("这两个数组相等"); } else { System.out.println("这两个数组不相等"); } } //控制台输入数组并且倒序输出 public static void putIn() { int[] arr = new int[5]; Scanner input = new Scanner(System.in); for (int i = 0; i < arr.length; i++) { System.out.println("请输入第" + (i + 1) + "个数"); arr[i] = input.nextInt(); } // for (int i = arr.length-1;i >= 0; i--) { // System.out.println("倒序输出为:" + arr[i]); // } ArrayUtils.reverse(arr); System.out.println("倒序输出为:" + Arrays.toString(arr)); } //toString方法打印数组 public static void arrToString(int a[]) { System.out.println(Arrays.toString(a)); } //从数组中创建一个ArrayList public static void makeArraylist(String stringArray[]) { ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray)); System.out.println(arrayList); } //把一个 ArrayList 转换成数组 public static void arrayListToArray(String stringArray[]) { 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); } } //把一个数组转换成 Set public static void ArrayToSet(String stringArray[]) { Set<String> set = new HashSet<String>(Arrays.asList(stringArray)); System.out.println(set); } //检查数组是否包含某一个值 public static void checkSomeone(String stringArray[]) { boolean b = Arrays.asList(stringArray).contains("aa"); System.out.println(b); } //数组合并 public static void addArray(int a[], int b[]) { int[] sumArray = ArrayUtils.addAll(a, b); System.out.println(Arrays.toString(sumArray)); } //用指定的分隔符连接数组元素 public static void charWithArray(String stringArray[]) { String j = StringUtils.join(stringArray, "/"); System.out.println(j); } //移除数组中的元素 public static void removeArray(int a[]) { int[] removed = ArrayUtils.removeElement(a, 8);//新建一个数组 System.out.println(Arrays.toString(removed)); } //把 int 转换成字节数组 public static void intToByte() { byte[] bytes = ByteBuffer.allocate(4).putInt(8).array(); for (byte t : bytes) { System.out.format("0x%x ", t); } } }