一、固定数组Arrays
数组用来存储固定大小的同类型的元素;
1、声明,初始化,访问
int[] myIntArray;
double[] myDoubleArr;
String[] myStrArr;
int size = 10;
double[] myDoubleArr = new double[size];
double[] myList = {1.9, 1.4, 2.3, 9.8};
for (int i = 0; i < myList.length; i++) { //方式1 获取数组的长度;
System.out.println(myList[i] + " ");
}
for (double element: myList) { //方式2 For-Each的方式;
System.out.println(myList[i] + " ");
}
2、数组排序
Arrays.sort(nums); // 默认升序排序;
Arrays.sort(a, new Comparator<String>() { // 自定义排序算法;
@Override
public int compare(String o1, String o2) {
return o1.length() - o2.length();
}
});
3、数组拷贝
方法1 for 循环拷贝(深拷贝)
int [] source = {1, 2, 3, 4, 5, 6};
int [] destination = new int[6];
//迭代并将元素从源复制到目标
for (int i = 0; i < source.length; ++i) {
destination[i] = source[i];
}
在这里,源和目标数组引用不同的对象(深拷贝)。因此,如果一个数组的元素被更改,另一个数组的相应元素也将保持不变。
方法2 Arrays.copy (浅拷贝)
String[] newStr = Arrays.copyOf(strArrays, 4); // 通过函数复制;
将一个字符串数组(strArrays)复制到一个新的长度为4的数组中。如果原数组长度小于4,则新数组的剩余位置将被填充为null。如果原数组长度大于等于4,则新数组将包含原数组的前4个元素。
浅拷贝——原始数组的一个元素的员工姓名的变化导致了拷贝数组的变化.
参考链接
Java复制数组的方法 https://www.cnblogs.com/baichunyu/p/12966475.html
Java复制(拷贝)数组的4种方法:arraycopy()方法、clone() 方法、copyOf()和copyOfRange https://c.biancheng.net/view/924.html
Java 中复制数组 https://www.itcodingman.com/java_array_copy/
Java 数组复制 https://www.cainiaojc.com/java/java-copy-arrays.html
4、Arrays类常见的函数
boolean isEqual = Arrays.equal(a, b); //比较函数
int idx = Arrays.binarySerch(num, key); //二分查找key,前提是数组必须有序;
5、其他类型和Arrays互转
// HashSet ==> Arrays;
HashSet<String> store = new HashSet<String>();
String[] result = new String[store.size()];
store.toArray(result); // 转换 collection.toArray()
//ArraysList ==> Arrays
ArrayList<Integer> storeNum = new ArrayList<>();
Integer[] strNumArray = new Integer[storeStr.size()]; // 必须是Integer类型;
storeStr.toArray(strNumArray);
二、动态数组 ArrayList
ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
Array 数组可以包含基本数据类型和引用数据类型,而 ArrayList 不能直接存储基本数据类型,而要存储其包装类对象。
ArrayList 继承了 AbstractList ,并实现了 List 接口。ArrayList 可以使用List的所有方法。
ArrayList 类位于 java.util 包中,使用前需要引入它,语法格式如下:
import java.util.ArrayList; // 引入 ArrayList 类
ArrayList<E> objectName =new ArrayList<>(); // 初始化
// E: 泛型数据类型,用于设置 objectName 的数据类型,只能为引用数据类型。
// objectName: 对象名。
1、定义/添加/删除元素
ArrayList<String> sites = new ArrayList<String>();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
sites.remove(3); // 删除第四个元素;
site.clear(); //清空元素;
2、遍历/修改元素
sites.set(2, "Wiki"); //修改idx=2位置的 值为Wiki;
//遍历元素
for (int i = 0; i < sites.size(); i++) {
System.out.println(sites.get(i)); // 访问数据;
}
for (String i : sites) { //for-each;
System.out.println(i);
}
3、排序和反转数据
Collection.sort(sites);
Collections.sort(store, new Comparator<Integer>() { //自定义排序算法
@Override
public int compare(Integer o1, Integer o2) {
return 0;
}
});
标签:JAVA,Arrays,ArrayList,sites,int,数组,new,数据结构
From: https://www.cnblogs.com/knowledgeable/p/18313387