您的位置:首页 > 编程语言 > Java开发

java笔记7

2016-06-08 10:42 363 查看
数组定义格式:
ElementType[] a;
ElementType[] a = new ElementType
;
ElementType[] a = {exp0, exp1, exp2};
不同类型的数组不能相互赋值。

引用单个数组元素的行为称为建下标(subscripting)或者建索引(indexing)。

对象数组的默认初始化值是null。

常量数组final int[] B = {10, 20}; 不能改变B的引用,但是可以改变元素的值。
B = new int[2]; //wrong
B[1] = 12; //right

数组是一个对象。 数组具有object对象的所有成员方法。数组的clone()方法专门为数组重载了。

数组还有一个public final的数据域length来声明数组中元素的个数。
for(int i=0; i< puppy.length; i++)
System.out.println(puppy[i]);

数组方法clone()返回数组的一个重复。 这种克隆称为浅拷贝。 两个数组的对应元素引用相同的对象。 也就是说,u克隆之后的v,u[0]和v[0]的地址是一样的。
Point[] u = {new Point(0,0), new Point(2,4)};
Point[] v = u.clone();

逐一克隆u的元素实现了独立的元素拷贝,称为深拷贝。 u和v不共享任何内存空间。
Point[] u = {new Point(0,0), new Point(2,4), new Point(3,5)};
Pint[] v = new Point[3];
for(int i=0; i<u.length; i++)
v[i] = u[i].clone();

当数组类型为基本类型时,clone()方法自动采用深拷贝。
int[] x = {0, 1, 2};
int[] y = x.clone();

在数组data中查找一个特定的值,包含要查找的值的变量称为关键字。

多维数组
int[][] m = new int[3][];
m[0] = new int[4];
m[1] = new int[4];
m[2] = new int[4];
或者
int[][] m = new int[3][4];

java的数组中没有任何操作可以支持插入一个新元素或者删除一个现存的元素。

在集合架构中有两类列表表示法:一类实现接口java.util.Collection,另一类实现接口java.util.Map
实现Collection派生接口List、Set和SortedSet之一的类,表达列表的方法与人们通常想象的一样,这些类支持将一个列表看作一组元素。
实现Map接口或者其他派生接口HashMap的类看起来更有关联性;即,这些类提供了一种途径将值和“关键字”关联。

ArrayList类实现List接口,提供可改变大小的列表表示。
ArrayList c = new ArrayList(); //在更新容量前,最多存10个元素

ArrayList c = new ArrayList(20); //在更新容量前,最多存20个元素
ArrayList的类方法:public void add(int, Object);
void add(int, Object); //将Object值插入到下标int处
boolean add(Object); //将Object值添加到末端,返回true
void clear(); //删除列表所有元素
Object clone(); //返回该列表的一个浅拷贝
Object get(int); //返回int下标对应的值
boolean isEmpty(); //列表无元素,返回true
Object remove(int); //删除int下标对应的元素
Object set(int, Object); //将下标int对应的值替换为Object
int size(); //返回元素个数

java.util.Collections的类方法:static
Object max(Collection);
Object max(Collection, Comparator);
Object min(Collection);
Object min(Collection, Comparator);
void reverse(List a);
void shuffle(List a);
void sort(List a);
void sort(List a, Comparator c);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java