Ⅰ java中一维数组的概念
一维数组,就是数组,和C语言里面的数组定义是一样的,初始化的时候
int a[] = new int [10]; //声明并定义大小(即分配了指定大小的空间)
int a[] = {1,2,3}; // 声明并初始化,占用空间大小是3个int。
类似这样的就可以了
Ⅱ java:java一维数组和二维数组的定义方法
(一)一维二维数组的定义:
[html]view plain
/*一维数组定义的几种方法:
*int[]x;
intx[];
二维数组定义的几种方法:
int[][]y;
inty[][];
int[]y[];
int[]x,y[];//x一维、y二维
int[]x;
int[]y[];
-----------
a:
x[0]=y;//cuo
b:
y[0]=x;//yes
c:
y[0][0]=x;//cuo
d:
x[0][0]=y;//cuo
e:
y[0][0]=x[0];//yes
f:
x=y;//cuo
*/
(二)使用二维数组:
[html]view plain
packagetest;
publicclasstest{
publicstaticvoidmain(String[]args)
{
inta[][]=newint[3][4];
for(intx=0;x<3;x++)
{
for(inty=0;y<4;y++)
System.out.print(a[x][y]);
System.out.println();
}
}
}
控制台输出结果:
0000
0000
0000
Ⅲ 在Java定义一个整型一维数组,至少包含5个值,求数组中的最大值并输出。
import java.util.*;
public class test1 {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int[]a=new int[10];//定义一个长度为10的数组,名为:a
int max1=-1;
for(int i=0;i<6;i++)
{//输入6个数
a[i]=cin.nextInt();
}
for(int i=0;i<6;i++)
{
max1=Math.max(max1,a[i]);
}
System.out.println(max1);
}
}
Ⅳ Java定义一个一维数组,并给每个元素赋值为数组下标的值,并显示
publicstaticvoidmain(String[]args){
/**
*1、Java定义一个一维数组,并给每个元素赋值为数组下标的值,并显示
*/
int[]arr=newint[10];
for(inti=0;i<arr.length;i++){
arr[i]=i;
System.out.println(i+","+arr[i]);
}
}
publicstaticvoidmain(String[]args){
/**
*2、修改上述程序,将数组的赋值改为从键盘上输入的10个整数
*/
int[]arr=newint[10];
System.out.println("请依次输入10个整数");
for(inti=0;i<arr.length;i++){
System.out.println("请输入第"+(i+1)+"个整数:");
Scannerinput=newScanner(System.in);
arr[i]=Integer.parseInt(input.nextLine());
}
for(inti=0;i<arr.length;i++){
System.out.println(i+","+arr[i]);
}
/**
*3、修改上述程序,添加代码,实现从10个数中找到最大值和最小值,并显示。
*/
intmax=arr[0];//将数组的第一个元素赋给max
intmin=arr[0];//将数组的第一个元素赋给min
for(inti=1;i<arr.length;i++){
//从数组的第二个元素开始赋值,依次比较
if(arr[i]>max){
//如果arr[i]大于最大值,就将arr[i]赋给最大值
max=arr[i];
}
if(arr[i]<min){
//如果arr[i]小于最小值,就将arr[i]赋给最小值
min=arr[i];
}
}
System.out.println("最大值是:"+max);
System.out.println("最小值是:"+min);
/**
*4、修改上述程序,添加代码,去掉最大值和最小值,然后计算剩下的数的平均值,并显示
*/
intsum=0;
for(inti=0;i<arr.length;i++){
sum+=arr[i];
}
sum=sum-max-min;//去掉最大值和最小值的总和
doubleaverage=sum/(arr.length-2);
System.out.println("平均值:"+average);
}
Ⅳ 在Java中,定义一个一维整形数组,并给初值,打印所有奇数!求大神讲解越详细越好!偶是小白
publicclassTester{
publicstaticvoidmain(String[]args){
int[]a={1,2,3,4,5,6,7,8,9};//定义一个整形数组,并给出初值
for(inti=0;i<a.length;i++){
if(a[i]%2!=0){//判断是否为奇数(除以2的余数不等于0)
System.out.print(a[i]);//打印这个数
System.out.print("");//再打印个空格
}
}
System.out.println("");//输出结束的空行
}
}
Ⅵ 用java定义一个一维整型数组array={1,2,3,4,5,6,7,8,9,10},输出该数组元素之和、最大值、最小值。
public class Test{
public static void main(String args[]){
int score[] = null ;
score = new int[10] ;
for(int i = 0 ; i <
score.length ; i++){
score[i] = i
;
}
int max , min , sum ;
max = score[0] ;
min = score[0] ;
sum = 0 ;
for(int i = 0 ; i <
score.length ; i++){
if(max <
score[i]){
max
= score[i] ;
}
if(min >
score[i]){
min
= score[i] ;
}
sum +=
score[i] ;
}
System.out.println("max = " + max +
" min = " + min + " sum = " +
sum);
Ⅶ Java中一维数组定义及初始化 int []a; a[]={1,2,3}; 是错的,为什么
如果你熟悉C/C++,Java数组的工作原理与它们不同。Java中的数组是对象,这就意味着与C++中的数组的根本不同.
1、数组不是集合,它只能保存同种类型的多个原始类型或者对象的引用。数组保存的仅仅是对象的引用,而不是对象本身。数组声明的两种形式:一、int[] arr; 二、int arr[]; 推荐使用前者,这是一个int数组对象,而不是一个int原始类型。
2、数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。
4、在数组声明中包含数组长度永远是不合法的!如:int[5] arr; 。因为,声明的时候并没有实例化任何对象,只有在实例化数组对象时,JVM才分配空间,这时才与长度有关。
5、在数组构造的时候必须指定长度,因为JVM要知道需要在堆上分配多少空间。例:int[] arr = new int[5];
7、一维数组的构造。形如:String[] sa = new String[5]; 或者分成两句:String[] sa; sa = new String[5];
8、原始类型数组元素的默认值。对于原始类型数组,在用new构造完成而没有初始化时,JVM自动对其进行初始化。默认值:byte、short、 int、long--0 float--0.0f double--0.0 boolean--false char--'"u0000'。(无论该数组是成员变量还是局部变量)
10、对象类型的数组虽然被默认初始化了,但是并没有调用其构造函数。也就是说:Car[] myCar = new Car[10];只创建了一个myCar数组对象!并没有创建Car对象的任何实例!
11、多维数组的构造。float[][] ratings = new float[9][]; 第一维的长度必须给出,其余的可以不写,因为JVM只需要知道赋给变量ratings的对象的长度。
12、数组索引的范围。数组中各个元素的索引是从0开始的,到length-1。每个数组对象都有一个length属性,它保存了该数组对象的长度。(注意和String对象的length()方法区分开来)
13、Java有数组下标检查,当访问超出索引范围时,将产生运行时异常。注意,这种下标检查不是在编译时刻进行的,而是在运行时!也就是说int[] arr = new int[10]; arr[100] = 100; 这么明显的错误可以通过编译,但在运行时抛出!
Java中的数组中既可以存储基本的值类型,也可以存储对象。对象数组和原始数据类型数组在使用方法上几乎是完全一致的,唯一的差别在于对象数组容纳的是引用而原始数据类型数组容纳的是具体的数值。在讨论关于数组的问题时,一定要先确定数组中存储的是基本值类型还是对象。特别是在调试程序时,要注意这方面。
Ⅷ java中一维数组的定义及初始化的方法有哪几种
上面的说法的确不对!
可以这样理解二维数组,把“一维数组”看做是一种数据类型,二维数组只不过是定义了包含5个数据类型是“一维数组”(和String一样的一种数据类型)的特殊一维数组。也可以扩展到多维数组。通常会有这种说法java中不存在多为数组,多维数组只是包含n个次维数组类型的元素的一维数组。
从Java中数组定义格式来理解数组的思想。
type[] arrayName;
type arrayName[];
第一种定义格式能更好的帮助我们理解数组,这个格式将 type[] 看做一种数据类型,同于int、String等,是一种引用类型。“type[] arrayName;”定义了一个type[]类型的变量arrayName。从内存中来看,“type[] arrayName;”只是在栈内存中存放了arrayName这个引用类型变量,并没有指向任何有效的内存。只有在初始化后,才会在堆内存中分配数组元素存储空间。
同时,这种定义方法,也解释了为什么说Java中可以不存在多维数组的说法,因为都是把次维数组看做一个数据类型的缘故。
Ⅸ 用java定义一个一维数组,其中随机生成500个1到50之间整数,输出出现最多的偶
static void ss() {
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
Integer[] nums = new Integer[500];// 定义一个长度500的整数组
Random ra = new Random();
// 循环给数组赋值(随机产生值)
for (int i = 0; i < nums.length; i++) {
nums[i] = ra.nextInt(50) + 1;// 1-50之间
}
Integer count = 0;// 出现的次数
for (int i = 0; i < nums.length; i++) {
if (nums[i] % 2 == 0) {
for (int j = 0; j < nums.length; j++) {
if (nums[i].equals(nums[j])) {
count++;
}
if (j == nums.length - 1) {// 最后赋值给map
map.put(nums[i], count);
count = 0;
}
}
}
}
System.out.println("排序前:" + map);
List<Map.Entry<Integer, Integer>> mappingList = null;
mappingList = new ArrayList<Map.Entry<Integer, Integer>>(map.entrySet());
Collections.sort(mappingList,
new Comparator<Map.Entry<Integer, Integer>>() {
public int compare(Map.Entry<Integer, Integer> mapping1,
Map.Entry<Integer, Integer> mapping2) {
// 降序或升序只需要更改参数位置
return mapping2.getValue().compareTo(
mapping1.getValue());
}
});
System.out.print("排序后:");
for (Map.Entry<Integer, Integer> mapping : mappingList) {
System.out.print(mapping.getKey() + ":" + mapping.getValue() + "\t");
}
String[] str = mappingList.get(0).toString().split("=");
System.out.println("\n出现次数最多的偶数:"+str[0]+",出现的次数为:"+str[1]);
}
Ⅹ java定义一个一维的整数数组,存储随机生成的100个整数,进行升幂排序,输出排序后的结果.
你是想要一个实现方法吗?前面按照你的要求,先生成这个数组A,数组里的100个数随机生成,并且是乱序的。
首先再创建一个数组B,长度与A相等,里面的值都是空的。
然后做一个嵌套循环,外面是A,里面是B
for(int i=0;i<A.length;i++){
for(int j=0;j<A.length;j++){
}
}
核心思路就是,遍历A,将每个数取出来,然后与B里的每个数做比较,如果发现A中当前的数大于等于B中当前的数,则记录下B当前的位置,然后跳出B循环,将A当前的数插入到B当前位置的下一个位置,然后循环下一个。最后B就是升序排列好的100个数了。