java数组的声明_Java数组定义常⽤⽅法
Java数组定义常⽤⽅法
Java中的数组、是⼀种简单的线性数据存储结构、他⽤牺牲⾃动扩展⼤⼩来换取与集合相⽐的唯⼀优势——查询效率的提升。Java中的数组有什么类型?我们要怎么定义这些数组呢?下⾯跟yjbys⼩编⼀起来学习Java数组定义常⽤⽅法吧!
java中有两种数据类型:
a)引⽤类型
b)基础类型
其中基础类型⼜有两种:
b1)数值类型
b2)及布尔类型。
数组——也为java的⼀个数据类型、归类为引⽤类型。本⽂意图说清楚两点:
1、数组的声明以及初始化。
2、常⽤的数组⽅法。
补充⼀点:对于我们常说的⼆维数组、多维数组其实是⼀维数组的`延伸、这⾥暂时只围绕⼀维数组。
【数组的声明及初始化】
1、数组的声明:
作为⼀种引⽤类型、就如我们平常使⽤引⽤类型的时候声明⼀样、⼀般有两种写法:
a) type[] arrayName; exp: String[] strArray;
b) type arrayName[]; exp: String strArray[];
第⼆种源于C的写法、由于很容易造成混淆、所以现在基本不使⽤这种声明⽅式了。
2、数组的初始化:
数组的初始化有两种:
a) 静态初始化——数组⼤⼩由系统分配、我们只为数组每个位置上赋值
String[] strArray1 = {"a", "b", "c", "d", "e"};
String[] strArray2 = new String[]{"a", "b", "c", "d", "e"};//在 new String[]中不能指定String数组的⼤⼩!
b)动态初始化——只指定数值的⼤⼩、初始化⼯作由系统为我们完成(即为数组的每个位置赋初始值)
String[] strArray3 = new String[5];//此时String数组的每个位置上的值都由系统来初始化、使⽤默认的值""
//我们能做的是动态的为strArray3每个位置上的值进⾏修改
for (int i = 0; i < strArray1.length; i++) {
//这⾥仅⽤原始的⽅法进⾏赋值。
strArray3[i] = strArray1[i];
}
【数组的常⽤⽅法】
package com.chy.array.usefulMethods;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import com.chy.array.bean.Student;
@SuppressWarnings("all")
public class ArrayUseFulMethoed {
private static int[] intArray = {1, 2, 3, 4, 5};
private static String[] strArray = {"a", "b", "c", "d", "e"};
/
**
* 填充元素、⽐较⼤⼩、复制元素
*/
public static void testFillArray(){
//注意字符串和对象的不同
Student[] student1 = new Student[4];
Student[] student2 = new Student[4];
System.out.println(Arrays.equals(student1, student2));//true
数组定义时初始化Arrays.fill(student1, 0, 4, new Student(1,"chy"));
Arrays.fill(student2, new Student(1,"chy"));
System.out.println(Arrays.equals(student1, student2));//false
String[] str1 = new String[4];
String[] str2 = new String[]{"a", "a", "a", "a"};
String[] str3 = {new String("a"), new String("a"), new String("a"), new String("a")};
Arrays.fill(str1, "a");
System.out.println(Arrays.equals(str1, str2));//true
System.out.println(Arrays.equals(str2, str3));//true
String[] str4 = pyOf(str1, 2);//是将传⼊的数组拷贝len个元素到新的数组、相当于复制本⾝的⼀部分或者全部形成⼀个全新的数组
System.out.println(str4.length + "=======" + String(str4));// 2=======[a, a]
String[] str5 = new String[8];
System.arraycopy(str4, 0, str5, 6, 2);//是将str4从下标0开的2个元素拷贝到从下标6开始放置的数组str5中
System.out.println(str5.length + "=======" + String(str5));// 8=======[null, null, null, null, null, null, a, a]
}
/**
* 以字符串的形式输出指定数组的“模样”
*/
public static void printOriginalArray(){
String intArrayToString = String(intArray);
System.out.println(intArrayToString); //result: [1, 2, 3, 4, 5]
}
/**
* 将数组转化成List集合
* 注意:不能直接将int[]转化为集合、因为asList()⽅法的参数必须是对象。应该先把int[]转化为Integer[]。* 对于其他primitive类型的数组也是如此,必须先转换成相应的wrapper类型数组。
*/
public static void convetArrayToList(){
Integer[] integerArray = new Integer[intArray.length];
for (int i = 0; i < integerArray.length; i++) {
integerArray[i] = intArray[i];
}
ArrayList integerList1 = new ArrayList(Arrays.asList(integerArray));
/*
* 不能写成下⾯:
* ArrayList integerList2 = (ArrayList)Arrays.asList(integerArray);
* 返回的是List、强转可以通过编译、但是不能正常使⽤。
*/
for(int i : integerList1){
System.out.print(i);
}
//result: 12345
System.out.println();
}
/**
* 将List集合转换成数组
*/
public static void convetListToArray(){
ArrayList strList = new ArrayList(Arrays.asList(strArray));
String[] strArrayFromList = new String[strList.size()];
System.out.String(strArrayFromList)); //result: [a, b, c, d, e]
/*
* 注意:不能写成这样:String[] strArrayFromList = (String[])Array(strArrayFromList);会抛出ClassCastException。* Array()与Array(T[] t)的区别在于:
* Array()返回的是⼀个Object[]、不能强转成String[]、强转的话可以通过编译、但是不能进⾏String[]的操作
* ⽽Array(T[] t)会将list的值转换成T类型的数组。
*/
}
/**
* 将数组转换成Set集合
*/
public static void convertArrayToSet(){
Set set = new HashSet(Arrays.asList(strArray));
//Set具有⽆序性、所以输出结构不⼀定是原来数组元素存放顺序
System.out.println(set); //result: [d, e, b, c, a]
}
/**
* 判断某个数组中是否包含⼀个元素、思路:将数组转换成list使⽤list的contains⽅法
*/
public static void isContainObject(){
ArrayList strList = new ArrayList(Arrays.asList(strArray));
System.out.ains("a")); //result: true
//另⼀种实现
Arrays.sort(strArray);
if(Arrays.binarySearch(strArray, "c") >= 0){
System.out.println(true);
}else{
System.out.println(false);
}
}
/**
* 将两个相同类型的数组连接起来
*/
public static void connTwoSameArray(){
int[] intArray2 = new int[]{6, 7, 8, 9, 10};
}
/**
* 将数组中数据排序
*/
public static void sortArray(){
String[] str = {"c", "a" ,"d" ,"z" };
Arrays.sort(str);
System.out.String(str));
//反序、
Arrays.sort(str, verseOrder()); System.out.String(str));
}
public static void main(String[] args) {
/*printOriginalArray();
convetArrayToList();
convetListToArray();
isContainObject();
convertArrayToSet();
sortArray();*/
testFillArray();
}
}
【Java数组定义常⽤⽅法】相关⽂章:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论