① java一维数组和二维数组的区别
在java中数组被看成是一个对象
在定义数组时,有两种定义方法:int[] a 和int a[];第二种是C/C++对数组定义方式,对于JAVA建议采用第一种定义方式。
总的原则:任何对象在被调用之前必须先被初始化!
1 一维数组的定义
//定义包含三个元素的一维数组
//方法1,先new对象,然后再初始化每个元素
int[] a = new int[3];
a[0] = 1;
a[1] = 2;
a[2] = 3;
方法一要注意的是不能这样写:
int[] a = new int[3];
a = {1,2,3};
原因是用new int[3]这种方式创建对象,对象已经被初始化并赋初值为0;可以用下面代码验证:
int[] d = new int[3];
for(int i=0;i<d.length;i++){
System.out.println(d[i]);
}
输入结果是:0 0 0
如果再用a = {1,2,3};来赋值,大家知道常量是不能再被赋值的,不可修改的。
//方法2,直接赋初值来创建对象
int[] b = {1,2,3};
//方法3,new完对象直接初始化
int[] c = new int[]{1,2,3};
方法三要注意的是不能这样写: int[] c = new int[3]{1,2,3};
即这种方法不能指定维度,原因:如果指定了数组初始化操作,则不能定义维表达式。
注意:如果用new定义数组时,必须指定其维度,这样定义是错误的: int[] d = new int[];
如果无法确定其元素个数,可以这样定义:int[] e = {};
2 二维数组的定义
基本与一维数组类似
//定义一个3行5列的二维数组
//方法1,先new对象,然后再初始化每个元素
int[][] a = new int[3][5];
a[0][0]=1;
a[0][1]=2;
a[0][2]=3;
//方法2,直接赋初值来创建对象
int[][] b = {{1,1,1,1,1}, {2,2,2,2,2}, {3,3,3,3,3} };
//方法3,new完对象直接初始化
int[][] a = new int[][] {{1,1,1,1,1}, {2,2,2,2,2}, {3,3,3,3,3} };
② java 一维整数数组
public class intArray {
private int theSize;
private int a_int[];
public intArray(int a[]){
this.a_int=a;
this.theSize=a.length;
}
public int getSize(){
return this.theSize;
}
public int getAt(int nIndex){
return this.a_int[nIndex];
}
public void SetAt(int nIndex , int newElement){
this.a_int[nIndex] =newElement;
}
public void add(int nIndex){
int old[]=this.a_int;
this.a_int= new int[this.theSize+1];
for(int i =0;i<old.length;i++){
a_int[i]= old[i];
}
a_int[this.theSize+1]=nIndex;
this.theSize++;
}
public static void main(String args[]){
int a[]={3,42,52,22,44,55,11,23,7,1,2,86,64};
intArray array = new intArray(a);
for(int i = 0;i<array.getSize();i++){
for(int j=i; j<array.getSize();j++){
if(array.getAt(j) >array.getAt(i)){
int b_int = array.getAt(i);
array.SetAt(i, array.getAt(j));
array.SetAt(j, b_int);
}
}
}
for(int i = 0;i<array.getSize();i++){
System.out.println(array.getAt(i));
}
}
}
JAVA写析构干嘛? 俺就不写了。
③ java 一维数组 怎么变二维数组
下面这个程序做到了:
public class Test1 {
public static void main(String[] args) {
int a [] = new int[20];
for (int i = 0; i < a.length; i++) {
a[i] = i;
}
int n = 5;//列
int m = a.length / n;//行
int[][] b = new int[m][n];
int num = -1;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
num++;
b[i][j] = a[num];
}
}
System.out.println("原来的一维数组是:");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
System.out.println("转换后的二维数组是:");
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.print(b[i][j] + " ");
}
System.out.println();
}
}
}
④ JAVA用一维数组做一个示例。
//一维数组
String[] str = new String[5]; //创建一个长度为5的String(字符串)型的一维数组
str[0] = "a"; //赋值
str[1] = "b";
str[2] = "c";
str[3] = "d";
str[4] = "e";
//也可以创建并赋值
String[] str = {"a","b","c","d","e"};
//二维数组
String[][] str = new String[2][2]; //创建一个2行2列的二维数组
str[0][0] = "a0"; //赋值
str[0][1] = "a1";
str[1][0] = "b0";
str[1][1] = "b1";
//也可以创建并赋值
String[][] str = {{"a0","a1"},{"b0","b1"}};
总结:
类型名[]/[][] 变量名 = new 类型名[]/[][];
⑤ java中定义一个一维数组,有什么方法可以把数组排序
整数数组么。。
import java.util.Arrays;
public class SortArray {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] nums = { 22, 33, 11, 223, 435, 54, 332, 32, 5, 65, 321, 43 };
// 第一种方法 直接用API提供的方法默认是升序排列
Arrays.sort(nums);
for (int num : nums) {
System.out.print(num + " ");
}
System.out.println();
// 第二种方法 自己写 冒泡排序
nums = new int[] { 22, 33, 11, 223, 435, 54, 332, 32, 5, 65, 321, 43,
543, 432, 7765, 321 };
for (int i = 0; i < nums.length; i++) {
for (int m = i; m < nums.length; m++) {
if (nums[i] > nums[m]) {
int temp = nums[i];
nums[i] = nums[m];
nums[m] = temp;
}
}
}
for (int num : nums) {
System.out.print(num + " ");
}
}
}
⑥ JAVA的第一维数组如何获取
int []arr=new int[5];
arr[0]=1;
arr[1]=2;
...
就这样呗 。
如果是二维的:
int [][]arr=new int[3][3];
arr[0][0]=1;
arr[0][1]=2;
...
arr[0]就是这个二维数组的第一维.
arr[1]就是第二维.
⑦ java 一维数组的输入输出
publicstaticvoidmain(String[]args){
Scannershuliang=newScanner(System.in);
System.out.println("请输入水果的数量");
intm=shuliang.nextInt();
intzhongliang[]=newint[m];
intmin=0;
System.out.println("请输入水果的重量,单位(kg),用空格格开:");
//重量的输入以及最小值的查找
for(inti=0;i<m;i++){//i<=m是错的,除非你从i=1开始
zhongliang[i]=shuliang.nextInt();
min=zhongliang[0];
if(zhongliang[i]<min){
min=zhongliang[i];
}
}
shuliang.close();
//输入结束,求和
intsum=0;//这个放外面,不然每次在循环里面都重新初始化为0;
//水果总重量?
for(intI=0;I<m;I++){
sum+=zhongliang[I];
/*这个Z是什么?放在for里面一上来就有问题
*intZ=sum-min;
*System.out.println("宝宝的爸妈拿到的水果总重量:"+Z);
**/
}
intZ=sum-min;
System.out.println("sum="+sum);
System.out.println("min=:"+min);
System.out.println("宝宝的爸妈拿到的水果总重量:"+Z);
}
自己看看问题在哪里。请养成打花括号的习惯,虽然有时候代码块只有一行,但便于别人阅读
⑧ Java定义一个一维数组有哪几种方法
首先: 一维数组的声明 ; 代码如下
int[]ary1;//Java推荐的数组声明方式
intary2[];//不推荐,但也是正确的,C语言等使用这种方式
其次: 声明的声明和赋值
//参考一
int[]ary1={1,2,3};//声明的时候,同时赋值
//参考二
int[]ary2=newint[3];//指定数组的长度为3
ary2[0]=1;//数组下标从0开始,依次给每个元素赋值
ary2[1]=2;
ary2[2]=3;
//参考三
int[]ary3=newint[]{1,2,3};//注意,这里的newint[]方框里不能指定长度
最后: 注意数组的默认值;
简单数据类型,比如boolean类型的数组,默认值就是false, int类型的数组,默认值就是0.
对象类型的数组,比如Boolean类型的数组,默认值是null,Integer类型的数组,默认值还是null
int[]ary1=newint[1];
System.out.println(ary1[0]);//输出0
Integer[]ary2=newInteger[1];
System.out.println(ary2[0]);//输出null
boolean[]b1=newboolean[1];
System.out.println(b1[0]);//输出false
Boolean[]b2=newBoolean[1];
System.out.println(b2[0]);//输出null
⑨ java 一维数组
import java.util.Scanner;
public class DataArrayDemo{
public static void main(String []args){
int max=0, n, a[];
String[] b;
String s;
Scanner sr=new Scanner(System.in);
n=sr.nextInt();
a=new int[n];
b=new String[n];
for(int i=0; i<n; i++){
System.out.print("第"+(i+1)+"个学生成绩为:");
a[i]=sr.nextInt();
s=sr.nextLine();
System.out.print("第"+(i+1)+"个学生姓名为:");
b[i]=sr.nextLine();
if(a[i]>max)max=a[i];
}
System.out.println("最高分学生成绩为"+max); //修改处
for(int i=0;i<n;i++){
if(a[i]==max)
System.out.println("最高分学生姓名为"+b[i]);
}
}
}
⑩ 初学者java编程 提示用户输入一个一维数组,为这个数组添加元素
亲,咱先假设咱定义一个类名Abc,比如说是一个学生信息管理系统吧,要实现这些功能,建三个类。
/
//定义一个学生信息类
public class Student{
java.util.Scanner sn = new java.util.Scanner(System.in);//从控制台输入的函数
String name[] = new String[30];//在内存中开辟大小为30的空间
String sex[] = new String[30];
String mobrle[] = new String[30];
String address[] = new String[30];
//定义一个查询的方法,这些方法的次序你可以随便换
void seek(int k) {
System.out.println("\n" + name[k] + "\n性别:" + sex[k] + "\n电话:"
+ mobrle[k] + "\n家庭住址:" + address[k]);
}
//定义一个添加的方法
void add(int j) {
System.out.println("请输入姓名");
name[j] = sn.next();
System.out.println("请输入性别");
sex[j] = sn.next();
System.out.println("请输入手机号");
mobrle[j] = sn.next();
System.out.println("请输入家庭住址");
address[j] = sn.next();
}
//定义一个删除的方法
void delete(int k) {
name[k] = null;
sex[k] = null;
mobrle[k] = null;
address[k] = null;
}
}
//定义一个学生类
public class Student {
StudentBook sbBook = new StudentBook();
java.util.Scanner sn = new java.util.Scanner(System.in);
String name1;
void add() {
for (int j = 0; j < sbBook.name.length; j++) {
if (sbBook.name[j] == null) {
sbBook.add(j);
System.out.println("╭─────╮\n│添加成功!│\n╰─────╯");
break;
}
}
}
void seek() {
for (int t = 12; t != 0;) {
System.out
.println("\n┏━━━━━┓\n┃查询同学录┃\n┗━━━━━┛\n1.按姓名查找\n2.按性别查找\n3.按地区查找\n4.查看全部\n0.返回上一级菜单");
int wu = 0;
t = sn.nextInt();//这个地方你可以只定义一种查询的方法,我在这里只是为了更多元化一些。
if (t == 1) {
System.out.println("请输入查询同学的姓名");
name1 = sn.next();
for (int k = 0; k < sbBook.name.length; k++) {
if (name1.equals(sbBook.name[k])) {
sbBook.seek(k);
wu++;
}
}
}
if (t == 2) {
System.out.println("请输入查询同学的性别");
name1 = sn.next();
for (int k = 0; k < sbBook.sex.length; k++) {
if (name1.equals(sbBook.sex[k])) {
sbBook.seek(k);
wu++;
}
}
}
if (t == 3) {
System.out.println("请输入查询同学的地区");
name1 = sn.next();
for (int k = 0; k < sbBook.sex.length; k++) {
if (name1.equals(sbBook.address[k])) {
sbBook.seek(k);
wu++;
}
}
}
if (t == 4) {
for (int k = 0; sbBook.name[k] != null; k++) {
sbBook.seek(k);
wu++;
}
}
if (t == 0) {
break;
}
if (wu == 0) {
System.out.println("没有该同学的信息\n");
}
}
}
void alter() {
System.out.println("请输入修改同学的姓名");
name1 = sn.next();
for (int k = 0; k < sbBook.name.length; k++) {
if (name1.equals(sbBook.name[k])) {
sbBook.seek(k);
sbBook.add(k);
System.out.println("╭─────╮\n│修改成功!│\n╰─────╯");
break;
} else {
System.out.println("没有这个人的信息");
break;
}
}
}
void delete() {
System.out.println("请输入删除同学的姓名");
name1 = sn.next();
for (int k = 0; k < sbBook.name.length; k++) {
if (name1.equals(sbBook.name[k])) {
sbBook.seek(k);
sbBook.delete(k);
System.out.println("╭─────╮\n│删除成功!│\n╰─────╯");
break;
} else {
System.out.println("没有这个人的信息");
break;
}
}
}
}
//运行的主类,调用上面的两个类
public class Text {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
java.util.Scanner sn = new java.util.Scanner(System.in);
Student Su = new Student();
System.out.println("┏━━━━━━━━━┓\n┃欢迎来到同学录系统┃\n┗━━━━━━━━━┛");
for (int i = 1; i != 0;) {
System.out
.println("\n1.添加同学录\n2.查询同学录\n3.修改同学录\n4.删除同学录信息\n0.退出\n");
i = sn.nextInt();
if (i == 1) {
Su.add();
}
if (i == 2) {
Su.seek();
}
if (i == 3) {
Su.alter();
}
if (i == 4) {
Su.delete();
}
if (i == 0) {
break;
}
}
System.out.println("╔════════╗\n║谢谢使用,再见!║\n╚════════╝");
}
}
所有的系统都是一个道理,有不明白的可以再问。