JAVA数组编程问题
public static void main(String[] args) throws IOException {
System.out.println("添加元素方法开始");
String[] arr=add();
System.out.println("添加后数组元素是:");
printArr(arr);
System.out.println("获取指定位置元素方法开始");
System.out.println(getIndex(arr));
System.out.println("删除元素方法开始");
arr=delete(arr);
System.out.println("删除后数组元素是:");
printArr(arr);
}
public static String[] add() {
Scanner sc=new Scanner(System.in);
System.out.println("请输入数组元素个数,回车确认");
int n=Integer.parseInt(sc.nextLine());
System.out.println("请输入数组元素,回车确认");
String[] arr=new String[n];
for(int i=0; i < n; i++) {// 循环,从控制台读数据放到数组里
arr[i]=sc.nextLine();
}
return arr;
}
public static String[] delete(String[] arr) {
Scanner sc=new Scanner(System.in);
System.out.println("要删除第几个元素?(数组脚标从0开始),回车确认");
int n=Integer.parseInt(sc.nextLine());
String[] tmp=new String[arr.length - 1];
if(n >= arr.length) {
System.out.println("脚标超出数组长度,删除失败");
return arr;
}
for(int i=n; i < arr.length - 1; i++) {
arr[i]=arr[i + 1];// 从位置n开始,后面的元素覆盖前面的元素
}
for(int i=0; i < arr.length - 1; i++) {
tmp[i]=arr[i];// 将数组赋值给新数组,不要最后一个元素,因为数组长度-1了
}
return tmp;
}
public static String getIndex(String[] arr) {
Scanner sc=new Scanner(System.in);
System.out.println("要获取第几个元素?(数组脚标从0开始),回车确认");
int index=Integer.parseInt(sc.nextLine());
if(index >= arr.length) {
System.out.println("指定位置超出数组大小");
return null;
} else {
System.out.println("获取到的是:");
return arr[index];
}
}
public static void printArr(String[] arr) {
for(int i=0; i < arr.length; i++) {
System.out.print(arr[i] + ",");
}
System.out.println();
}
class MyArray{
int _data = new int[100];
int _k = 0;
//1
public void set(int index,int element){
if(index >=_k|| index<0) return;
_data[index] =element;
}
//2
public int get(int index){
if(index<_k) return _data[index];
throw new Exception("超出长度");
}
//3
public void insert(int index,int element){
if(index>=_k) throw new Exception("超出长度");
for(int i = index+1 ; i< k+1; i++){
_data[i] = data[i-1];
}
_k++;
_data[index] = element;
}
//4
public void delete(int index){
for(int i =index;i<k-1;i++){
_data[index] = _data[index+1];
}
_k--;
}
public int getLength(){
return _k;
}
}
public class ArrayTest {
public static void main(String[] args) {
int length ;
try {
length = Integer.parseInt(args[0]);
} catch (Exception e) {
System.out.println("请输入正确的数字");
return;
}
int[] array = new int[length];
for(int i=0;i<array.length;i++) {
array[i]=1+(int)(Math.random()*100);
}
printArray(array);
for(int i=0;i<array.length/2;i++) {
int tmp = array[i];
array[i] = array[array.length-i-1];
array[array.length-i-1] = tmp;
}
printArray(array);
}
public static void printArray (int[] array) {
StringBuffer sb = new StringBuffer();
for(int i=0;i<array.length;i++) {
sb.append(array[i]).append(",");
}
if(sb.length()>0) {
sb.deleteCharAt(sb.length()-1);
}
System.out.println(sb);
}
}
public class change
{
public static void main(String[] args)
{
int temp;
int[] array=new int[20];
for(int i=0;i<array.length;i++)
array[i]=1+(int)(Math.random()*100);
for(int a:array)
System.out.print(a+" ");
System.out.println();
for(int i=0;i<array.length/2;i++)
{
temp=array[i];
array[i]=array[array.length-1-i];
array[array.length-1-i]=temp;
}
for(int a:array)
System.out.print(a+" ");
}
}
JAVA数组问题
其实跟声明String a变量一样 a是一个引用名称 而ABC[] a也是一样的 在内存看来a代表了一段内存空间,由于是数组类型的,是连续性的,而数组中的成员a[0] a[1]...等等都是a这段内存连续空间里面的数据,变量也是一样的 只是String 类型的a这个内存空间存放着一个String类型的数据 a只是表示数组...
JAVA中数组问题,JAVA高手来
二维你可以理解为一个矩形。。。是个平面,两个维度分别是长和宽,对应行和列;三维数组你可以理解为一个立方体,3个维度分别为长宽高,对应数组的1、2、3维;四维数组可以理解为一个N个立方体排成一列。。。这一列的顺序就是第四维度;五维数组可以想象成为N个立方体在地面上摆成一个矩形,这个...
Java 编程问题 求大神写完整过程 谢谢~
我简单写了一个例子,可以参考下:import java.util.Arrays;public class IntegerArrayMoveExample {public static void main(String[] args) {\/\/ testint[] arr={1,2,3,4,5,6,7,8,9,0};arrayMove(arr,5);}\/** * 数组向右移动m位 * @param arr 原数组 * @param position 向右移动的...
java编程错误:需要数组,但找到 double
命名不规范,形参与属性同名,就会认就近原则的形参。加上this。public class Polygon{ protected double[] x=new double[100];protected double[] y=new double[100];private int numberOfArray=0;public Test2(){ } public void addPoint(double x,double y){ this.x[numberOfArray] = x;this...
java 数组问题 输入个数字n (2<n<20)
题出得不是很明白,根据我的理解,给出思路!!!1、生成质数数组方法 1.1、由于n比较小,可以手工列出来20以内的质数数组作为已知量<适用n小的情况> 1.2、写一个生成小于某数字m(m大于或者等于n)的质数数组(从2开始的质数从小到大排列)<适用于n太大,自己不知道小于n的质数有哪些> 2、给定n...
JAVA编程:有一个数组,内放10个整数,要求找出最小的数和它的下标,然后将...
public class TestIntSam { public static void main(String[] args) { int[] ints={1,2,3,4,5,6,0,20,4,23};int min=ints[0];int minSub=0;for(int i=1;i<ints.length;i++){ if(ints[i]<min){ min=ints[i];minSub=i;} } System.out.println("最小数:"+min+" ...
java编程关于数组的问题
计算欧氏距离就行。这个是只有两个维度的时候:d=sqrt( (x1-x2)^2+(y1-y2)^2 三维公式:√( (x1-x2)^2+(y1-y2)^2+(z1-z2)^2 )N维公式:√ [ ∑( a[i] - b[i] )^2 你先自己琢磨代码等会儿上。double[] x={-9.0,1.0,10.0,-1.0,1.0};double[] y={-5.0,...
计算机java关于数组编程问题。如图所示
import java.util.Scanner;\/** * 2015年10月23日下午8:37:31 * * @author cs12110 TODO 完成程序 *\/public class Joke { private Scanner input = new Scanner(System.in); protected String userName;\/\/ 用户名 protected String password;\/\/ 登录密码 \/** * 根据提示获取输...
Java 数组的问题
看我图片吧。a和b是引用,本身存储的紧紧是一个地址,他指向内存中“真实”数组所在的位置。所以当b = a;执行之后,b实际上已经和a指向同一个地址了。所以你改变b也会改变a。
如何在java中使用数组
1、首先可以使用String[] s=new String[6],定义一个长度为6的字符串数组,定义之后,可以对字符串数组进行赋值,如下图所示。2、使用int[] i=new int[6],定义一个长度为6的整型数组,其它类型类似,如下图所示。3、也可以在定义数组的时候,直接对数组进行赋值,使用String[] str=new String[...
仲长永易瑞: /** * 2015年9月16日下午10:50:20 ** @author cs12110 测试数组的基本操作 */ public class MyNum { /* * 定义长度为100的一维整型数组 */ private int[] arrs = new int[100]; /* * 标识整型数组元素个数 */ private int k = 0; /** * 根据数组下标获取元素 ...
额尔古纳市17523976955: JAVA上的数组问题 - ?
仲长永易瑞: Students[] stu = new Students[5];这一步叫实例化,实例化是只在内存中给对象分配一个存储空间,不是指赋值.Students[] stu = new Students[5];你在这一步指定了数组的类型是Students的,也就是说数组中只能存放Students的实例.stu[0]=90;stu[1]=100; 你这两部操作,是编译通不过的,你在一个Students类型的数组中存放了int型的变量,java不允许.stu[0]=new Students();这句话是指你创建了一个Students类的实例,然后存放在了数组stu中.
额尔古纳市17523976955: java中的数组输出问题 - ?
仲长永易瑞: int[] arr = new int[10]; for(int i=3;i<=7;i++){ System.out.println(arr[i]); }
额尔古纳市17523976955: java 里的数组问题,请举实例 - ?
仲长永易瑞: public int[] arraySort(boolean tag, int[] arr){ int[] a = arr; for(int j=0; j { for(int i=0; i {if(a[i]>a[i+1] && tag) { int m = a[i]; a[i] = a[i+1]; a[i+1] = m;} else if(a[i] int m = a[i]; a[i] = a[i+1]; a[i+1] = m;} } } return a; } 好了
额尔古纳市17523976955: 请教JAVA 数组问题 - ?
仲长永易瑞: for(int i=0;i...
额尔古纳市17523976955: java一个关于数组的简单问题? - ?
仲长永易瑞: int a[][]=new int[3][4]; //定义二维数组//但没有赋值,Java虚拟机自动初始化为全0;所以输出结果为0 for(int i=0;i<a.length;i++){//a.length = 3 可以把a看做外层数组的首地址,外层数组由3个一维数组组成每个数组有四个元素 for(int j=0;j<a[i].length;j++){ //循环遍历数组中的每个元素//内层数组的长度为4 System.out.print(a[i][j]);//因为自动初始化为全0,所以为0 } System.out.println();//这一句是让每一个内层数组输出后换行
额尔古纳市17523976955: 关于java的数组问题 - ?
仲长永易瑞: 这样写没错,数组里的值是可以改变的,不能改变的是数组的长度.不过如果你用ArrayList的话就可以改变数组的长度.
额尔古纳市17523976955: 关于JAVA中数组的一个小问题?
仲长永易瑞: 首先,数组只是相同类型的,同一个标识符名称封装到一起的一个对象序列或者基本数据类型序列,定义一个数组,只需要在类型名后面加上一个空方括号即可.而这个标识符只是对数组的一个引用,并没有个数组对象本身分配任何空间.为了给数组创建相应的存储空间,必须写初始化表达式. 为什么不能用小括号呢,一般来说小括号是用来调用方法用的,当然包括实例化一个对象(本质上也是调用函数,只不过是构造函数).{}括起来的叫对象直接量,是直接在内存堆栈里划分出一部分空间来存放你所指定的对象,然后把对象的引用赋给你前面定义的标识符,大括号里你可以放基本数据类型或者对象.{}这个和NEW性质是一样的
额尔古纳市17523976955: java中的数组问题??
仲长永易瑞: 你是进行数组的输出吧,这里是内存保存数组的位置,只因为这样显示是因为你的输出方法不对,数组用循环输出.
额尔古纳市17523976955: java中一个关于数组的简单问题? - ?
仲长永易瑞: Arrays.fill(arr,1,2,8); arr数组从位置1(包含)到位置2(不包含)用val(值为8) 来填充 src包下源码 public static void fill(int[] a, int fromIndex, int toIndex, int val) { rangeCheck(a.length, fromIndex, toIndex); for (int i=fromIndex; i<toIndex; i++) a[i] = val; }