Android中数组是怎么使用的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android中数组是怎么使用的?相关的知识,希望对你有一定的参考价值。

我想讲屏幕分成9 * 9,然后对应的区域为 rect[0][0] 到 rect[9][9],但是在定义的时候却出现了错误,代码如下:在全局变量中定义:static Rect[][] Lei = null; 构造函数中设置值Lei[0][0] = new Rect(10, 10, 10+y, 10+x);调试了下,在构造函数中的这句代码出现了错误,我是菜鸟,希望各位指导下.

这样应该会报nullPointerExcepton吧你的数组变量Lei都没有new出来,只是声明了public static Rect[][] Lei = new Rect[行数][列数];填充数据应该没有问题Lei[0][0] = new Rect(10, 10, 10+y, 10+x); 参考技术A 打个比方:Lei就是一个箱子,纸盒子,你得先把纸盒子造出来数组元素就是酒瓶子,得把酒瓶子造出来酒瓶子造出来放到纸盒子的某个位置,比如[0][0]位置,都放好了,就成了包装好的一盒酒了

java中怎么删除数组中的元素

举个例子:
int a[]=1,2,3,4,5,6;
我想删除a[3]也就是4如何实现。求赐教

java中删除数组中的元素方法:

    我们可以使用Apache Commons Utils 这个库的ArrayUtils类来轻易的删除数组中的元素。不过有一点需要注意,数组是在大小是固定的,这意味这我们删除元素后,并不会减少数组的大小。

    所以,我们只能创建一个新的数组,然后使用System.arrayCopy()方法将剩下的元素拷贝到新的数组中。

    对于对象数组,我们还可以将数组转化为List,然后使用List提供的方法来删除对象,然后再将List转换为数组。

Java的特点有:

    平台无关性。平台无关性是指Java能运行于不同的平台。Java引进虚拟机原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。

    安全性。Java的编程类似C++,学习过C++的读者将很快掌握Java的精髓。Java舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问。

    面向对象。Java吸取了C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。

    分布式。Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。

    健壮性。Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自己操纵内存减少了内存出错的可能性,并且Java还提供了Null指针检测、数组边界检测、异常出口、Byte code校验等功能。

    解释型。我们知道C,C++等语言,都是针对CPU芯片进行编译,生成机器代码,该代码的运行就和特定的CPU有关。Java的字节码是很接近机器码的文件,可以在提供了java虚拟机(JVM)的任何系统上被解释执行。

    动态。java程序的基本组成单元就是类,有些类是自己编写的,有些是从类库中引入的,而类又是运行时动态装载的,这就使得Java可以在分部环境中动态的维护程序及分类,而不像C++那样,没档期类库升级以后,如果想让程序具有新类库提供的功能,就需要修改程序,重新编译。

参考技术A package com.example;

import java.util.Arrays;

public class Delte

public static void main(String[] args)
int[] arrs =  1 ,2 ,3 ,4 ,5 ,6 ;

Arr arr = new Arr(arrs);
System.out.println(arr.toString());

arr.delete(3);
System.out.println(arr.toString());

arr.delete(2);
System.out.println(arr.toString());
arr.toString2();




class Arr

private int[] arr;
private int len;//实际内容长度

public Arr(int[] arr)
this.arr = arr;
this.len = this.arr.length;


public void delete(int index)
if(index > arr.length)
return;


for(int i = index; i < arr.length - 1; i ++)
arr[i] = arr[i + 1];


len --;

arr[arr.length - 1] = 0;


public void toString2()
for(int i = 0; i < len; i ++)
if(i + 1 != len)
System.out.print(arr[i] + ",");
 else
System.out.println(arr[i]);




@Override
public String toString()
// TODO Auto-generated method stub
return Arrays.toString(arr);

[1, 2, 3, 4, 5, 6]
[1, 2, 3, 5, 6, 0]
[1, 2, 5, 6, 0, 0]
1,2,5,6

参考技术B 以下实例演示了如何使用 remove () 方法来删除数组元素:
Main.java 文件
import java.util.ArrayList;
public class Main
public static void main(String[] args)
ArrayList<String> objArray = new ArrayList<String>(); objArray.clear(); objArray.add(0,"第 0 个元素"); objArray.add(1,"第 1 个元素"); objArray.add(2,"第 2 个元素"); System.out.println("数组删除元素前:"+objArray); objArray.remove(1); objArray.remove("第 0 个元素"); System.out.println("数组删除元素后:"+objArray);
参考技术C import java.util.ArrayList;
import java.util.List;

public class Test
public static void main(String args[])
int[] oldArr = 1, 2, 3, 4, 5, 6 ;
int[] newArr = removeByIndex(oldArr, 3);
for (int i : newArr)
System.out.print(i);



public static int[] removeByIndex(int[] oldArr, int index)
// new 一个 List
List<Object> list = new ArrayList<Object>();
// 循环迭代,把数组放进List里面
for (int i : oldArr)
list.add(i);

// 根据索引删除
list.remove(index);
// 重新new 一个数组
int[] newArr = new int[list.size()];
// 把List里面的集合全部添加到数组里面
for (int i = 0; i < list.size(); i++)
newArr[i] = ((Integer) list.get(i)).intValue();

return newArr;

参考技术D import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Demotest
public static void main(String[] args)
System.out.println("输出一个你要删除的数组下标:");
Scanner reader = new Scanner(System.in);
int n = reader.nextInt();

int oldArr[] = 1, 2, 3, 4, 5, 6 ;

List list = new ArrayList();

for (int i = 0; i < oldArr.length-1; i++)
if (i < n)
list.add(new Integer(oldArr[i]));
else
list.add(new Integer(oldArr[i+1]));




int newArr[] = new int[list.size()];

for (int i = 0; i < list.size(); i++)
newArr[i] = ((Integer) list.get(i)).intValue();


for (int i = 0; i < newArr.length; i++) // 打印新数组
System.out.print(newArr[i] + " ");




运行结果:输出一个你要删除的数组下标:
3
1 2 3 5 6

以上是关于Android中数组是怎么使用的?的主要内容,如果未能解决你的问题,请参考以下文章

android中的数组怎么声明?

android怎么在array配置文件中添加图片资源数组

android怎么把json转换为hashmap

android开发,数组越界,可是怎么都找不到问题,求救

android中怎么把数组的内容在ListView中显示

在android中,数据下标越界,则发生啥异常