热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

最适合freshman的Java习题集数组

篇首语:本文由编程笔记#小编为大家整理,主要介绍了最适合freshman的Java习题集数组相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了最适合freshman的Java习题集数组相关的知识,希望对你有一定的参考价值。






  1. 求数组的平均值
  2. 数组所有元素之和
  3. 改变原有数组元素的值
  4. 打印数组
  5. 创建的数组,并且赋初始值
  6. 存在连续三个奇数的数组
  7. 多数元素
  8. 只出现一次的数字
  9. 两数之和
  10. 冒泡排序
  11. 数组是否有序
  12. 二分查找
  13. 数组的拷贝
  14. 数组转字符串



1.求数组的平均值

实现一个方法 avg, 以数组为参数, 求数组中所有元素的平均值(注意方法的返回值类型).

public class array
//基于数组的日常练习
public static void main(String[] args)
//求数组的平均值
//实现一个方法 avg, 以数组为参数, 求数组中所有元素的平均值(注意方法的返回值类型).
int[] arr = 1,9,3,5,4;
System.out.println(arrAvg(arr));

//先得定义一个数组 遍历数组 求数组长度 求个元素和 然后和/长度=平均值
public static int arrSum(int[] arr)
int ret = 0;
for (int i = 0; i ret += arr[i];

return ret;

public static double arrAvg(int[] arr)
double ret = 0.0;
double sum = arrSum(arr);
ret = sum / arr.length;
return ret;

 


2.数组所有元素之和

实现一个方法 sum, 以数组为参数, 求数组所有元素之和.

public class array
public static void main(String[] args)
int[] arr = 1,9,3,5,4;
//2.数组所有元素之和
System.out.println(arrSum(arr));//22

public static int arrSum(int[] arr)
int ret = 0;
for (int i = 0; i ret += arr[i];

return ret;


3.改变原有数组元素的值

实现一个方法 transform, 以数组为参数, 循环将数组中的每个元素 乘以 2 , 并设置到对应的数组元素上. 例如 原数组为 1, 2, 3, 修改之后为 2, 4, 6

public class array
public static void main(String[] args)
// int[] arr = new int[3];
// arr[0]=1;
// arr[1]=2;
// arr[2]=3
int[] arr = 1,2,3;//定义一个数组,并初始化
int[] ret = transform(arr);
printArr(arr);
System.out.println();
printArr(ret);

//打印数组元素
private static void printArr(int[] arr)
for (int i : arr) //不改变数组内部元素
System.out.print(i + " ");


public static int[] transform(int[] arr)
int[] ret = new int[arr.length] ; //新创建一个数组,跟原数组等长,不改变原数组元素
for (int i = 0; i ret[i] = arr[i]*2;

return ret;


4.打印数组

实现一个方法 printArray, 以数组为参数, 循环访问数组中的每个元素, 打印每个元素的值.

public class array
public static void main(String[] args)
int[] arr = 1,9,3,5,4;
String ret = arrPrint(arr);
System.out.print(ret);//[1,9,3,5,4]

// 实现一个方法 printArray, 以数组为参数,
// 循环访问数组中的每个元素, 打印每个元素的值.
public static String arrPrint(int[] arr)
String ret = "[";
for (int i = 0; i ret+=arr[i];
if (i != arr.length-1) // i ret += ",";


ret += "]";
return ret;

 


 5.创建的数组,并且赋初始值

创建一个 int 类型的数组, 元素个数为 100, 并把每个元素依次设置为 1 - 100

import java.util.Arrays;
public class array
public static void main(String[] args)
int[] a=new int[100];
setNumber(a);
System.out.println(Arrays.toString(a));

//创建一个 int 类型的数组, 元素个数为 100, 并把每个元素依次设置为 1 - 100
public static int[] setNumber(int[] arr)
for (int i &#61; 0; i <100; i&#43;&#43;)
arr[i] &#61; i&#43;1;

return arr;



6.存在连续三个奇数的数组

给你一个整数数组arr&#xff0c;请你判断数组中是否存在连续三个元素都是奇数的情况&#xff1a;如果存在&#xff0c;请返回 true &#xff1b;否则&#xff0c;返回 false 。

示例 1&#xff1a;输入&#xff1a;arr &#61; [2,6,4,1]                         输出&#xff1a;false

解释&#xff1a;不存在连续三个元素都是奇数的情况。

示例 2&#xff1a;输入&#xff1a;arr &#61; [1,2,34,3,4,5,7,23,12]     输出&#xff1a;true

解释&#xff1a;存在连续三个元素都是奇数的情况&#xff0c;即 [5,7,23] 。

public class array
public static void main(String[] args)
int[] a1 &#61; 2,6,4,1;
numOdd(a1);
int[] a2 &#61;1,2,34,3,4,5,7,23,12;
numOdd(a2);

//6.给你一个整数数组arr&#xff0c;请你判断数组中是否存在连续三个元素都是奇数的情况&#xff1a;
// 如果存在&#xff0c;请返回true&#xff1b;否则&#xff0c;返回false。
public static int numOdd(int[] arr)
int count &#61; 0;
for (int i &#61; 0; i if(arr[i]%2&#61;&#61;1 && arr[i&#43;1]%2&#61;&#61;1 && arr[i&#43;2]%2&#61;&#61;1)
count&#43;&#43;;


if (count!&#61;0)
System.out.println(true);
else
System.out.println(false);

return count;


7.多数元素

给定一个大小为 n 的数组&#xff0c;找到其中的多数元素。多数元素是指在数组中出现次数 大于 n/2 的元素。你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。

示例 1&#xff1a;  输入&#xff1a;[3,2,3]                输出&#xff1a;3

示例 2&#xff1a; 输入&#xff1a;[2,2,1,1,1,2,2]     输出&#xff1a;2

import java.util.Arrays;
public class array
public static void main(String[] args)
System.out.print("arr1的多数元素为&#xff1a;");
int[] arr1 &#61; 3,2,3;
System.out.print(searchMost(arr1));
System.out.print("\\narr2的多数元素为&#xff1a;");
int[] arr2 &#61; 2,2,1,1,1,2,2;
System.out.print(searchMost(arr2));

//给定一个大小为 n的数组&#xff0c;找到其中的多数元素。多数元素是指在数组中出现次数
//大于n/2的元素。你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。
/**
* 将数组排序&#xff0c;则中间的那个元素一定是多数元素
* 该代码的时间复杂度为O&#xff08;NlogN&#xff09;
* &#64;param arr 整形数组
* &#64;return
*/
public static int searchMost(int[] arr)
Arrays.sort(arr); //对数组元素排序
return arr[arr.length/2];


8.只出现一次的数字

给定一个非空整数数组&#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。

&#xfeff;示例 1:  输入: [2,2,1]              输出: 1

示例 2:  输入: [4,1,2,1,2]        输出: 4

public class array
public static void main(String[] args)
int[] arr1 &#61; 2,2,1;
System.out.println(searchOne(arr1));
int[] arr2 &#61; 4,1,2,1,2;
System.out.println(searchOne(arr2));

//8.给定一个非空整数数组&#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均
//出现两次。找出那个只出现了一次的元素。
//异或操作 —— 任何数异或0都等于任何数
public static int searchOne(int[] arr)
int temp &#61; 0;
for (int i &#61; 0; i temp^&#61;arr[i];

return temp;


9.两数之和

给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。

示例 &#xff1a;

输入&#xff1a;nums &#61; [2,7,11,15], target &#61; 9    输出&#xff1a;[0,1]

解释&#xff1a;因为 nums[0] &#43; nums[1] &#61;&#61; 9 &#xff0c;返回 [0, 1] 。

public class array
public static void main(String[] args)
int[] nums &#61; 2,7,11,15;
searchSum(nums,9);

//9.给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出
// 和为目标值 target的那两个整数&#xff0c;并返回它们的数组下标。你可以假设每种
// 输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。你可
// 以按任意顺序返回答案。
// target &#61; nums[i] &#43; nums[j] ——>return i , j
public static int searchSum(int[] nums, int target)
for (int i &#61; 0; i for (int j &#61; 1; j if (target &#61;&#61; nums[i]&#43;nums[j])
System.out.print("["&#43;i&#43;","&#43;j&#43;"]");//单纯的控制输出格式



return target;


10.冒泡排序

给定一个整型数组, 实现冒泡排序(升序排序)

public class array
public static void main(String[] args)
//10.冒泡排序 升序排序
//双重循环
int[] arr &#61; 1, 8, 5, 0, 3, 7, 4;
// 外层循环控制 冒的轮数
for (int i &#61; 0; i // 内层循环控制相邻两个数&#xff0c;若前一个数大于后一个数 则交换两数
// PS: j的越界问题
for (int j &#61; 0; j if (arr[j] > arr[j &#43; 1])
int temp &#61; arr[j];
arr[j] &#61; arr[j&#43;1];
arr[j&#43;1] &#61; temp;



System.out.println("升序排序为&#xff1a;");
for (int i &#61; 0; i System.out.print(arr[i]&#43;" "); //0 1 3 4 5 7 8


 


 11.数组是否有序

给定一个整型数组, 判定数组是否有序&#xff08;递增&#xff09;

public class array
public static void main(String[] args)
int[] arr1 &#61; 1,2,3,4,5,6,7;
System.out.println(arryJudge(arr1));
int[] arr2 &#61; 3,6,2,5,1,4;
System.out.print(arryJudge(arr2));

//给定一个整型数组, 判定数组是否有序&#xff08;递增&#xff09;
public static boolean arryJudge(int[] arr)
for (int i &#61; 0; i if (arr[i] > arr[i&#43;1])
return false;


return true;

 


12.二分查找

给定一个有序整型数组, 实现二分查找

public class array
public static void main(String[] args)
int[] arr &#61; 1,3,5,7,9,11,13,17;
System.out.println(searchBinary(arr,2)); //-1
System.out.println(searchBinary(arr,17)); //17

// 12.二分查找
/**
* 有序整型数组, 实现二分查找
* &#64;param arr
* &#64;param target 要找的数
* &#64;return
*/
public static int searchBinary(int[] arr,int target)
int left &#61; 0;
int right &#61; arr.length-1;
while(left <&#61; right)
int middle &#61; (left&#43;right)>>1;
if (target &#61;&#61; arr[middle])
return arr[middle]; //返回要找的那个数值
else if (target right &#61; middle-1;
else
left &#61; middle&#43;1;


return -1;//未找到

 


13.数组的拷贝

实现一个方法 copyOf, 对一个整型数组进行拷贝, 得到一个新的数组.

import java.util.Arrays;
public class array
public static void main(String[] args)
// 13.
int[] arr &#61; 3,7,2,4,8;
int[] newarr &#61; arryCopy(arr);//调用方法arryCopy
System.out.println(Arrays.toString(newarr));//Arrays.toString将数组转换成String类型输出

//13.实现一个方法 copyOf, 对一个整型数组进行拷贝, 得到一个新的数组。
public static int[] arryCopy(int[] arr)
int[] ret &#61; new int[arr.length];//保持数组大小不变
for (int i &#61; 0; i ret[i] &#61; arr[i];

return ret;

 


14.数组转字符串

实现一个方法 toString, 把一个整型数组转换成字符串. 例如数组 1, 2, 3 , 返回的字符串为 "[1, 2, 3]", 注意 逗号 的位置和数量.

public class array
public static void main(String[] args)
int[] arr &#61; 3,7,2,4,8;
System.out.println(arrToStr(arr));

// 14.实现一个方法 toString, 把一个整型数组转换成字符串.
// 例如数组 1, 2, 3 , 返回的字符串为 "[1, 2, 3]", 注意逗号的位置和数量.
public static String arrToStr(int[] arr)
String ret &#61; "[";
for (int i &#61; 0; i ret &#43;&#61; arr[i];
if (i ret &#43;&#61; ",";


ret &#43;&#61; "]";
return ret;

 



本小节完^_^





推荐阅读
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 摘要: 在测试数据中,生成中文姓名是一个常见的需求。本文介绍了使用C#编写的随机生成中文姓名的方法,并分享了相关代码。作者欢迎读者提出意见和建议。 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
author-avatar
白白加黑黑99_889
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有