(1)如何創建空數組?int[] array = {};

int[] array = new int[]{};

如果是創建空集合呢?Collections 類有一個方法 emptyList(), 返回一個空 List,當然你可以直接 new 一個List也是一樣的,只是 emptyList() 方法返回的 List 是被 final 修飾的。

(2)如何對數組進行排序?

java.util.Arrays 類包含很多對數組進行操作的方法,如排序、搜索等,排序我們可以使用 Arrays.sort()方法,int[] array = {5, 3, 7, 1, 0, 88};

Arrays.sort(array);

這樣 array 就會從小到大排好序了,當然這個 sort 方法還可以對其他類型進行排序,詳情可以查閱文檔。

(3)如何提取數組的一部分生成另一個數組?

使用 Arrays.copyOfRange 方法,有三個參數,第一個是要提取的數組,第二個是從哪里開始,第三個是到哪里結束且不包括該位置。int[] array = {1, 2, 3, 4, 5};

int[] newArray = Arrays.copyOfRange(array, 0, 2);

newArray 就是 {1, 2},當然也可以自己寫個循環來賦值,想當於重新寫一個 copyOfRange 了。

(4)如何合並兩個數組,同時使合並的數組中不包含重復的元素?

這里的前提條件應該是這兩個數組本身不包含重復的元素。

暫時沒想到較好的寫法。

(5)如何在數組中用二分法搜索元素?

使用 Arrays.binarySearch 方法,int[] array = {1, 2, 3, 4, 5};

int position = Arrays.binarySearch(array, 3);

System.out.println(position);

上面代碼打印出 “2”, 就是 3 在數組 array 中的位置。注意傳入的數組必須是已經排好序的,不然結果會不准確,了解二分查找的應該都知道。如果沒有找到要找的元素,會返回什么呢?查閱文檔,可以看到

Returns: index of the search key, if it is contained in the array; otherwise, (-(insertion point) - 1). The insertion point is defined as the point at which the key would be inserted into the array: the index of the first element greater than the key, or a.length if all elements in the array are less than the specified key. Note that this guarantees that the return value will be >= 0 if and only if the key is found.

就是說如果沒有找到,就返回 (-(insertion point) - 1),這個 insertion 就是對於被搜索的數組來說,要查找的元素會被放置的位置。比如說你在 {1, 3, 5} 中查找 2 ,會返回 (-(1) - ),也就是 -2,這里的 insertion = 1,因為 2 會放置在第二個位置。

隨着 Java 版本的更新,越來越多的通用方法被加入進 jdk 里面,很多方法我們都不需要自己寫了,也就是不用重復造輪子了,當然我們還是需要去了解這個方法的實現原理,這樣我們才會有比較實際性的成長。

(6)如何將數組反轉?

我在文檔里貌似沒看到可以直接反轉的方法,所以就考慮自己寫一個吧,這里以 int 數組為例public void reverse(int[] array) {

int start = 0;

int end = array.length - 1;

while(start < end) {

int temp = array[start];

array[start] = array[end];

array[end] = temp;

start++;

end--;

}

}

就是通過循環將頭尾逐次交換。

java如何將數組反轉_Java基礎練習題 (4)數組操作相关推荐

  1. java程序大笨钟怎么打,L1-018.大笨鍾(Java)PAT團體程序設計天梯賽-練習集

    微博上有個自稱"大笨鍾V"的家伙,每天敲鍾催促碼農們愛惜身體早點睡覺.不過由於笨鍾自己作息也不是很規律,所以敲鍾並不定時.一般敲鍾的點數是根據敲鍾時間而定的,如果正好在某個整點敲, ...

  2. php 对数据转换成tree,PHP 把返回的數據集轉換成Tree樹

    /** * 把返回的數據集轉換成Tree * @access public * @param array $list 要轉換的數據集 * @param string $pid parent標記字段 * ...

  3. html 转换 pdf js插件,【jsPDF】jsPDF插件實現將html頁面轉換成PDF,並下載,支持分頁...

    1.目的:在前段是 jQuery庫 或者 VUE庫 或者兩者混合庫,將html 頁面和數據 轉換成PDF格式並下載,支持分頁 1.項目背景: 對客戶報修記錄進行分類統計,並生成各種餅圖.柱狀圖.線性圖 ...

  4. Java jar 如何防止被反编译?代码写的太烂,害怕被人发现

    欢迎关注方志朋的博客,回复"666"获面试宝典 java作为解释型的语言,其高度抽象的特性意味其很容易被反编译,容易被反编译,自然有防止反编译措施存在.今天就拜读了一篇相关的文章, ...

  5. Java开发必会的反编译知识

    转载自 Java开发必会的反编译知识 编程语言 在介绍编译和反编译之前,我们先来简单介绍下编程语言(Programming Language).编程语言(Programming Language)分为 ...

  6. Java代码的编译与反编译那些事儿

    GitHub 2.5k Star 的Java工程师成神之路 ,不来了解一下吗? GitHub 2.5k Star 的Java工程师成神之路 ,真的不来了解一下吗? GitHub 2.5k Star 的 ...

  7. Java的class文件批量反编译成Java文件

    Java的class文件批量反编译成java文件 Class文件是java文件编译后产生的一个文件,class文件便于在软件上运行,但是我们无法阅读中间的程序,所以我们需要将class文件转换成jav ...

  8. Java基础04 编译与反编译

    1. 编译 编译: 把所写的高级语言所写作的源代码程序,转换成计算机能直接识别.执行的低级语言的程序,也就是可执行文件. Java语言的编译: Java语言作为一种高级语言,想要被执行就要通过编译将其 ...

  9. 【转】Java中斜杠和反斜杠的替换

    Java: 在不同的系统中,路径的分隔符不同,故需要做出判断,并切换分隔符; String类中replaceAll方法如下: String.replaceAll(String regex,String ...

最新文章

  1. 六、使用数组模拟栈的思路及代码实现
  2. 广度优先搜索求解迷宫问题
  3. CSS 工程化 小结
  4. oracle经常开关好吗,oracle启动和关闭
  5. 如何在vue-cli3中使用tinymce
  6. jquery ajax html编码,jQuery AJAX字符编码
  7. blender教学记录
  8. php事件检测,细说浏览器特性检测(2)-通用事件检测_jquery
  9. MySQL C 语言应用程序接口开发教程
  10. 常用电源及稳压芯片(一)
  11. xpath 解析离线网页解析本地网页解析本体html文件
  12. 中了勒索病毒如何自救?20220105
  13. 在github上写个人简历——最简单却又不容易的内容罗列
  14. Three-level Laser
  15. 怎么架设魔兽世界服务器?
  16. 计算机应用文写作C,计算机应用和公文写作
  17. [note] 微电子学概论(二) PN结 MOS和MOSFET
  18. PowerBuilder DeCompiler(PB DeCompiler) Demo download(PB反编译,支持5-12)
  19. 现在做什么生意比较赚钱,且投资小利润大?
  20. Delphi反射传入var形式的参数

热门文章

  1. Asp.Net的控件如何与Server交互
  2. 73-递归函数1:阶乘
  3. unity2D平面摄像机滑动缩放
  4. [测试]单元测试框架NUnit
  5. 计算机网络运输层之多路复用与多路分解
  6. [家里蹲大学数学杂志]第427期与反对称矩阵有关的一个行列式
  7. /usr/bin/ld: cannot find -lmysqlclient_r
  8. 80后应该面对的问题
  9. Windows 中的磁盘阵列
  10. 搜索巨头争夺本地搜索市场