Java基础学习之-数组操作

数组元素的排序

int array[]= {-1,3,0,5,2};
//【数组排序】
Arrays.sort(array);//从小到大排序:-1,0,2,3,5

数组元素的位置查找

//【数组元素的位置查找】查找值为5的索引,存在,则返回索引位置,否则返回负数或者:-插入点
int array[]= {-1,3,0,5,2};
System.out.println(Arrays.binarySearch(array,8));
// 二分法查找,数组必须是有序的
for(int a:array) {
	System.out.println(a);
}

数组元素的反转

List<String> list=new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
Iterator<String> iterator=list.iterator();
System.out.println("迭代前的数组");
while(iterator.hasNext()) {
	System.out.print(iterator.next());
}
System.out.println();
System.out.println("迭代之后的数组");
Collections.reverse(list);//【集合反转】只能传入集合
for(String i:list) {
	System.out.print(i);
}

数组中的最大值和最小值

//【数组中的最小值和最大值】
Integer[] integer= {1,5,-10,8,-12};
int min=(int) Collections.min(Arrays.asList(integer));
int max=(int) Collections.max(Arrays.asList(integer));
System.out.println(min);
System.out.println(max);

数组合并

String st[]= {"A","B"};
String sm[]= {"C","D"};
System.out.println(st);
@SuppressWarnings("rawtypes")
List list=new ArrayList(Arrays.asList(st));
System.out.println("list:"+list);

//【Arrays.asList()-数组转换成集合的方法】;
System.out.println(Arrays.asList(sm));
list.addAll(Arrays.asList(sm));//集合添加
System.out.println(list);
System.out.println("转换成数组对象");
//【集合转换成数组】
Object[] c=list.toArray();
System.out.println(c.length);
System.out.println(c[0]);
//【对象数组的循环输出方式】
for(Object string:c) {
	System.out.println(string);
}
//toString,以字符串的方式返回;
System.out.println(Arrays.toString(c));

数组填充

int data[]= {1,23,10,58};
for(int child:data) {
	System.out.println(child);
}
System.out.println();
//所有数组中的数据全部用-78填充;
Arrays.fill(data,-78);
//从位置0开始填充位置1结束(不包含位置1)
Arrays.fill(data,0,2,-78);		
Integer[] integers= {12,34,89};		

数组扩容

//【数组扩容】
String str1[]=new String[5];
str1[0]="A";
str1[1]="B";
str1[2]="C";
String str1[]= {"A","B","C"};
String str2[]= {"D","E"};
//从str2的位置0开始拷贝到str1,str1的位置3开始,拷贝两个原始
//ABCDE
System.arraycopy(str2, 0, str1, 3, 2);
//printArray(str1);//打印数组

删除数组元素

ArrayList<String> strings=new ArrayList<String>();
strings.add(0, "第first元素");
strings.add(1, "第second元素");
strings.add(2, "第third元素");
//printArrayList(strings);//打印数组
strings.remove(1);//删除索引为0的元素
//printArrayList(strings);//打印数组
//输出元素“第third元素”
strings.remove("第third元素");
//printArrayList(strings);//打印数组

数组差值

//【数组差值】[移除指定的元素]
ArrayList list1=new ArrayList();
ArrayList list2=new ArrayList();
list1.add("A");
list1.add("B");
list1.add("C");
list2.add("B");
list2.add("C");
//printArrayList(list1);
//printArrayList(list2);
//移除list1中指定的元素list2
list1.removeAll(list2);
//printArrayList(list1);

数组交集

//【数组交集】
ArrayList list1=new ArrayList();
ArrayList list2=new ArrayList();
list1.add("A");
list1.add("B");
list1.add("C");
list2.add("B");
//list2.add("C"); 
//printArrayList(list1);
//printArrayList(list2);
list1.retainAll(list2);//取两个列表中的交集
//printArrayList(list1);

数组元素查找

ArrayList list1=new ArrayList();
ArrayList list2=new ArrayList();
list1.add("A");
list1.add("B");
list1.add("C");
list2.add("B");
System.out.println(list1.contains("A"));
System.out.println(list1.contains("D"));

判断数组

//【判断数组是否相等】
int[] int1= {1,2};
int[] int2= {3,4};
int[] int3= {1,2};
System.out.println(Arrays.equals(int1, int2));//false
System.out.println(Arrays.equals(int1, int3));//true

数组合并

//【数组并集】--主要利用列表进行合并
String strs1[]= {"A","B","D","P"};
String strs2[]= {"B","C","D","F"};
String strs3[]= new String[3];
ArrayList lis1=new ArrayList(Arrays.asList(strs1)); 
ArrayList lis2=new ArrayList(Arrays.asList(strs2)); 
System.out.println(lis1.get(0));//获取位置0的元素
System.out.println(lis1.size());//获取集合的长度

//合并两个集合并删除重复的元素
ArrayList returnList=unionList(lis1, lis2);
System.out.println(returnList);
Object newstr[]=returnList.toArray();
System.out.println();
//printMoreArray(newstr);//打印数组

//删除重复的元素
public static ArrayList unionList(ArrayList list1,ArrayList list2) {
	ArrayList list = new ArrayList();
	for(Object lists1:list1) {
		list.add(lists1);
	}
	for(Object lists2:list2) {
		list.add(lists2);
	}
	for(int i=0;i<list.size();i++) {
		for(int j=0;j<list.size();j++) {
			if(i!=j && list.get(i)==list.get(j)) {
				System.out.println("重复原始为:"+list.get(i));
				list.remove(i);
			}
		}
	}
	return list;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值