数组实用类Arrays和枚举类型Enum
来源:互联网 发布:哈佛计算机编程课程 编辑:程序博客网 时间:2024/05/22 03:31
一、数组使用类Arrays
1.在java.util包中,Arrays提供了一系列静态方法,帮助操作数组。以下是较常用的一些方法。(1) equals方法,比较两个数组参数是否相同。(2) fill方法,向数组中填充数据参数。(3) binarySearch方法,查找数组中元素的值与给定数据相同的元素。(4) sort方法,将数组按升序排列。(5) copyOfRange方法,将数组的指定范围复制到一个新数组。(6) toString方法,返回指定数组内容的字符串表示形式。 代码示例如下:
/*** Arrays的一系列静态方法*/import java.util.Arrays;public class ArraysTest2{ public static void main(String[] args){ //基本数据类型、字符串 String[] arr = new String[5]; Arrays.fill(arr,0,3,"董帅");//s填充范围是0-2,不包含3 for(String s : arr){ System.out.println(s + ","); } System.out.println(); //引用数据类型 ArraysTest2[] arr2 = new ArraysTest2[5]; Arrays.fill(arr2,2,4,new ArraysTest2());//填充范围是2-3,不包含4 for(ArraysTest2 a : arr2){ System.out.println(a + ","); } //查找数组中元素的值与给定数据相同的元素 int[] arr3 = {2,6,5,63,2550,2346,34122}; System.out.println(Arrays.binarySearch(arr3,0,3,6) + "\n");//查找范围是0-2,返回的是数组下标 Arrays.sort(arr3);//将数组升序排序 System.out.println(Arrays.binarySearch(arr3,0,3,6) + "\n"); for(int i : arr3){ System.out.println(i); } int[] arr4 = {1,4,23,3,54,32,4645}; int[] arr5 = Arrays.copyOf(arr4,5);//赋值到新数组,范围是0-4 for(int i : arr5){ System.out.print(i + ","); } System.out.println(); int[] arr6 = Arrays.copyOfRange(arr4,2,5);//赋值到新数组,范围是2-4 for(int i : arr6){ System.out.print(i + ","); } System.out.println(); System.out.print(Arrays.toString(arr4));//返回数组的字符串表示形式 }}
二、枚举类型Enum
枚举类型enum是在JDK5.0加入的类型,类型安全,使枚举数值定义更加紧凑有效。
1.遍历枚举类型
/*** 枚举类型enum*/public class EnumTest{ public enum StudentGrade{ A,B,C,D,E,F }; public static void main(String[] args){ System.out.println("学生平均成绩:" + StudentGrade.A); for(StudentGrade sg : StudentGrade.values()){//遍历枚举类型,values()方法返回了一个独立的StudentGrade实例构成的数组 System.out.println("The Grade is:" + sg); } StudentGrade s = StudentGrade.valueOf("E");//以字符串的形式返回某一个元素的值。 System.out.println("your grade is:" + s); }}
2.在switch中使用枚举类型
/*** 枚举类型enum,在switch语句中使用*/public class EnumSwitch{ public enum Car{A,B,C,D,E,F,G,H}; public static void main(String[] args){ Car c = Car.G; switch(c){ case A: System.out.println("360"); break; case B: System.out.println("小米"); break; case C: System.out.println("华为"); break; case D: System.out.println("苹果"); break; default: System.out.println("HTC"); break; } }}
三、几道练习题
(1)求二重循环所有元素的和
/*** 求二位数组所有元素的和*/public class Task140_3{ public static void main(String[] args){ int[][] a = {{11,23,},{234,12,312,53},{423,53,123,65432}}; int sum = 0; for(int i = 0;i <= a.length - 1;i++){ for(int j = 0;j <= a[i].length - 1;j++){ sum += a[i][j]; } } System.out.println(sum); }}
(2) 判断一个单词是否在数组里面
/***判断一个单词是否在数组里面*/import java.util.Scanner;import java.util.Arrays;public class Task140_2{ public static void main(String[] args){ System.out.print("Please input a word:"); Scanner sc = new Scanner(System.in); String s = sc.next(); String[] str = {"dong","shuai","brilliant","awesome","shackboey","skydosh"}; int b = Arrays.binarySearch(str,s); if(b >= 0){ System.out.println("Here am I!"); }else{ System.out.println("what the hell!"); } }}
(3) 随机输出一个字符串
/*** 随机输出字符串*/import java.lang.Math;public class Task140_4{ public static void main(String[] args){ String[] arr = {"dong","shuai","zangyan","mudi","wangchao","jiaru"}; System.out.println(arr[2]); int i = (int)(Math.random() * arr.length); System.out.println(arr[i]); }}
(4)生成100个随机数,放到数组中,然后排序输出
/*** 生成100个随机数,放在数组中,然后排序输出*/import java.util.*;public class Task140_5{ public static void main(String[] args){ int[] arr = new int[100]; for(int i = 0;i < 100;i++){ Random rnd = new Random(); arr[i] = (int)(rnd.nextInt(Integer.MAX_VALUE) + 1); System.out.print(arr[i] + ","); } System.out.println(); Arrays.sort(arr); for(int j = 0;j < 100;j++){ System.out.print(arr[j] + " "); } }}
(5) 统计字符串中的英文字母、空格、数字和其它字符的个数。
/*** 统计字符串中各类型字符的个数*/import java.util.*;import java.io.*;//import java.io.InputStream;public class Task140_6{ public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("please input character string:"); String s = br.readLine(); //Task140_6 t = new Task140_6(); countSum(s); } public static void countSum(String s){ int alphabet = 0; int blankspace = 0; int number = 0; int other = 0; for(int i = 0;i < s.length();i++){ char c = s.charAt(i); if(c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z') alphabet++; else if(c == ' ') blankspace++; else if(c >= '0' && c <= '9') number++; else other++; } System.out.println("字母个数为:" + alphabet); System.out.println("空格个数为:" + blankspace); System.out.println("数字个数为:" + number); System.out.println("其他字符个数为:" + other); }}
0 0
- 数组实用类Arrays和枚举类型Enum
- enum枚举的类型和使用方法
- c和verilog的enum枚举类型
- java.lang.Enum类:枚举类型 小结
- Java enum 枚举类型
- C#枚举类型enum
- C#枚举类型enum
- C#枚举类型enum
- enum枚举类型学习
- JAVA枚举类型Enum
- 枚举类型-enum使用
- C枚举类型enum
- C枚举类型enum
- 枚举类型------enum
- Enum 枚举类型
- [Java] enum 枚举类型
- Java enum 枚举类型
- c# 枚举 enum 类型
- 蟠桃记
- alibaba druid数据源配置参考
- Git常用命令解说
- 安卓程序中RadioGroup的使用
- awk去重
- 数组实用类Arrays和枚举类型Enum
- JVM核心机制_深入类加载器JAVA220-223
- leetcode_061 Rotate List
- LeetCode 27. Remove Element
- 解决s:iterator 中嵌套s:radio的传值方法
- 并查集 hdu3038 How Many Answers Are Wrong
- Oozie安装配置简介
- 笔试题(2016.4.7)
- 对象存储