① 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╚════════╝");
}
}
所有的系統都是一個道理,有不明白的可以再問。