前面几节我们讲了数组还有三种集合。在学了基本的知识之后我们可以来做一些稍微高级一点的事情了。
首先来说说我们的java.util.Arrays类吧。
首先我们的Arrays类可以对我们的数组进行排序: Arrays.sort(array)
Arrays.sort(arr);
for (int i : arr) {
}
运行完了之后你会发现已经正序输出了结果SEO关键词我们的Arrays类可以对我们的数组进行排序: Arrays.sort(array)int arr[] = {1,4,2,5,7,3,6};
Arrays.sort(arr);
for (int i : arr) {
System.out.println(i);
}
运行完了之后你会发现已经正序输出了结果当然我们还可以倒序输出:int arr[] = {1,4,2,5,7,3,6};
Arrays.sort(arr);
for (int i = arr.length-1; i >= 0; i--) {
System.out.println(arr[i]);
}
对比数组:Arrays.equals(array1,array2)
int array1[] = {1,2,3,4,5};
int array2[] = {1,2,3,4,5};
System.out.println(Arrays.equals(array1, array2));
这里要和array.equals(array1)做个对比:int array[] = {1,2,3,4,5};
int array1[] = {1,2,3,4,5};
System.out.println(array.equals(array1));
你会发现这次返回的结果是false这是因为array.equals(array1)方法比较的是两个数组引用的内存地址是否相等如果我们改成:int array[] = {1,2,3,4,5};
int array1[] = array;
System.out.println(array.equals(array1));
则返回的内容就是true了搜索元素第一次出现位置:Arrays.binarySearch(array,元素)
int array[] = {1,2,3,4,5};
System.out.println(Arrays.binarySearch(array, 2));
若元素不存在则返回-1 注意次方法必须用在升序数组中否则还是会返回-1:int array[] = {4,3,2,5,1};
System.out.println(Arrays.binarySearch(array, 1));
用Set给List去重复:
ArrayList<String> list = new ArrayList<>();
list.add("大妖怪");
list.add("大妖怪");
list.add("小妖怪");
list.add("小妖怪");
HashSet<String> set = new HashSet<>();
set.addAll(list);
for (String str : set) {
System.out.println(str);
}
上面的代码在声明集合的时候和我们之前讲的貌似有点不一样你会发现我们在list的右边加了一个尖括号如果你是通过代码提示来创建的你会发现创建出来的代码会多出一个<E>这个<E>,我们叫它泛型泛型的意思是指指定这个List/Set/Map只能存放的数据类型这个类型可以是我们的八大类型可以是字符串还可以是我们以后要学到的对象当然如果不指定其实默认的是Object类也就是说可以放任何类型(我们后面会讲到,在java中Object类是所有Java类的祖先)。当然如果我们要给Map指定泛型需要指定key和value两个值。java排序算法有不少SEO排名服务需要指定key和value两个值。
java排序算法有不少这里暂时就讲一下最经典的冒泡排序(倒序):
int array[] = {1,3,4,5,8,9,2,6,7,0};
int temp; //记录临时中间值
for (int i = 0; i < array.length - 1; i++) {
for (int j = i + 1; j < array.length; j++) {
if (array[i] < array[j]) { // 交换两数的位置
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
for (int i : array) {
System.out.println(i);
}
有能力的童鞋还可以试着改成正序排序的算法。另外其它算法可以自行搜索。List转数组:List.tpArray()
ArrayList<String> list = new ArrayList<>();
list.add("大妖怪");
list.add("小妖怪");
String array[] = array = (String[])list.toArray(new String[list.size()]);
for (String str : array) {
System.out.println(str);
}
数组转换List:Arrays.asList()
String[] arr = {"大妖怪","小妖怪"};
ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arr));
for (String str : arrayList) {
System.out.println(str);
jdk还有很多方法在这不一一列出附上jdk1.7的api中午文档文档供查询: ?api=jdk-zh