欢迎光临,了解微信小程序开发,就上易用通!

【后端】java基础(4.5)java中级基础之综合应用与api文档

发布:2018-01-24 16:01浏览: 来源:网络 作者:tianshu

前面几节我们讲了数组,还有三种集合。在学了基本的知识之后我们可以来做一些稍微高级一点的事情了。
首先来说说我们的java.util.Arrays类吧。

  • 首先,我们的Arrays类可以对我们的数组进行排序: Arrays.sort(array)
    
    		
    1. int arr[] = {1,4,2,5,7,3,6};
    2. Arrays.sort(arr);
    3. for (int i : arr) {
    4. System.out.println(i);
    5. }
    运行完了之后你会发现已经正序输出了结果,当然我们还可以倒序输出:
    
    		
    1. int arr[] = {1,4,2,5,7,3,6};
    2. Arrays.sort(arr);
    3. for (int i = arr.length-1; i >= 0; i--) {
    4. System.out.println(arr[i]);
    5. }
  • 对比数组:Arrays.equals(array1,array2)
    
    		
    1. int array1[] = {1,2,3,4,5};
    2. int array2[] = {1,2,3,4,5};
    3. System.out.println(Arrays.equals(array1, array2));
    这里要和array.equals(array1)做个对比:
    
    		
    1. int array[] = {1,2,3,4,5};
    2. int array1[] = {1,2,3,4,5};
    3. System.out.println(array.equals(array1));
    你会发现这次返回的结果是false,这是因为array.equals(array1)方法比较的是两个数组引用的内存地址是否相等,如果我们改成:
    
    		
    1. int array[] = {1,2,3,4,5};
    2. int array1[] = array;
    3. System.out.println(array.equals(array1));
    则返回的内容就是true了
  • 搜索元素第一次出现位置:Arrays.binarySearch(array,元素)
    
    		
    1. int array[] = {1,2,3,4,5};
    2. System.out.println(Arrays.binarySearch(array, 2));
    若元素不存在,则返回-1 注意,次方法必须用在升序数组中,否则还是会返回-1:
    
    		
    1. int array[] = {4,3,2,5,1};
    2. System.out.println(Arrays.binarySearch(array, 1));
  • 用Set给List去重复:
    
    		
    1. ArrayList<String> list = new ArrayList<>();
    2. list.add("大妖怪");
    3. list.add("大妖怪");
    4. list.add("小妖怪");
    5. list.add("小妖怪");
    6. HashSet<String> set = new HashSet<>();
    7. set.addAll(list);
    8. for (String str : set) {
    9. System.out.println(str);
    10. }
    上面的代码在声明集合的时候和我们之前讲的貌似有点不一样,你会发现我们在list的右边加了一个尖括号,如果你是通过代码提示来创建的,你会发现创建出来的代码会多出一个<E>,这个<E>,我们叫它泛型,泛型的意思是指,指定这个List/Set/Map只能存放的数据类型,这个类型可以是我们的八大类型,可以是字符串,还可以是我们以后要学到的对象,当然,如果不指定,其实默认的是Object类,也就是说可以放任何类型(我们后面会讲到,在java中Object类是所有Java类的祖先)。当然,如果我们要给Map指定泛型,需要指定key和value两个值。
  • java排序算法有不少,这里暂时就讲一下最经典的冒泡排序(倒序):
    
    		
    1. int array[] = {1,3,4,5,8,9,2,6,7,0};
    2. int temp; //记录临时中间值
    3. for (int i = 0; i < array.length - 1; i++) {
    4. for (int j = i + 1; j < array.length; j++) {
    5. if (array[i] < array[j]) { // 交换两数的位置
    6. temp = array[i];
    7. array[i] = array[j];
    8. array[j] = temp;
    9. }
    10. }
    11. }
    12. for (int i : array) {
    13. System.out.println(i);
    14. }
    有能力的童鞋还可以试着改成正序排序的算法。另外其它算法可以自行搜索。
  • List转数组:List.tpArray()
    
    		
    1. ArrayList<String> list = new ArrayList<>();
    2. list.add("大妖怪");
    3. list.add("小妖怪");
    4. String array[] = array = (String[])list.toArray(new String[list.size()]);
    5. for (String str : array) {
    6. System.out.println(str);
    7. }
  • 数组转换List:Arrays.asList()
    
    		
    1. String[] arr = {"大妖怪","小妖怪"};
    2. ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arr));
    3. for (String str : arrayList) {
    4. System.out.println(str);
    5. }
    jdk还有很多方法,在这不一一列出,附上jdk1.7的api中午文档文档供查询: https://tool.oschina.net/apidocs/apidoc?api=jdk-zh




免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。