1.如何排序数组并搜索某个元素,找到返回下标
package zuoye;
import java.util.Arrays;
//找出指定元素的下标
import java.util.Scanner;
public class Test005 {
public static void lp(int[] array,int pwd){
for(int i=0;i<array.length;i++){
if(pwd==array[i]){
System.out.println("你要找的元素下标为:"+i);
}
}
}
public static void main(String[] args) {
int array[]={4,7,9,5,3};
Scanner lzq=new Scanner(System.in);
System.out.println("请输入你要找的元素:");
int pwd=lzq.nextInt();
Arrays.sort(array);
System.out.println("排序后数组为: ");
for(int i=0;i<array.length;i++){
System.out.print(" "+array[i]);
}
System.out.println();
lp(array,pwd);
}
}
运行结果为:
2.如何排序数组并插入某个元素
package javayouquqenti;
//给已知的数组插入元素
public class ChaRuyuansu {
public static void maopao(int[] array){
int tmp;
for (int i = 0; i<array.length; i++) {
for (int j = 0; j <array.length-1-i; j++) {
if(array[j]>array[j+1])
{
tmp = array[j];
array[j] = array[j+1];
array[j+1] = tmp;
}
}
}
}
public static void show(int[] Array){
}
public static void main(String[] args) {
int[] array = {1,76,28,24,3,6,4,9};
int cha = 22;
int[] array1 = new int[array.length+1];
array1[0] = cha;
System.out.println("原数组为:");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+" ");
}
System.out.println();
for (int i = 0; i < array.length; i++) {
array1[i+1] = array[i];
}
maopao(array1);
System.out.println("插入后的排序为:");
for (int i = 0; i < array1.length; i++) {
System.out.print(array1[i]+" ");
}
System.out.println();
}
}
运行结果:
3.如何确定数组的上限
package zuoye;
//求一个数组的上限
public class Test {//二维数组的上限求法
public static int Erwei(int[][] array){
int lzq = 0;
for (int i = 0; i < array.length; i++) {
lzq+=array[i].length;
}
return lzq;
}
//一维数组的上限求法
public static int Yiwei(int[] array1){
int lzq1=array1.length;
return lzq1;
}
public static void main(String[] args) {
int[][] array = new int[10][10];
System.out.println(Erwei(array));
int[] array1=new int[10];
System.out.println(Yiwei(array1));
}
}
运行结果:
4.数组的逆置
package javayouquqenti;
//数组的逆置
public class ShuZuNiZhi {
public static void sum(int[] array){
int tmp=0;
for(int i=0;i<array.length/2;i++){
tmp=array[i];
array[i]=array[array.length-i-1];
array[array.length-i-1]=tmp;
}
}
public static void main(String[] args) {
int array[]={1,2,9,5,4,3};
sum(array);
System.out.println("逆置后数组为:");
for(int i=0;i<array.length;i++){
System.out.print(" "+array[i]);
}
}
运行结果为:
5.如何打印一个String数组
package zuoye;
//打印一个Srting数组
public class Test01 {
public static void lzq(String[] array){
for(int i=0;i<array.length;i++){
System.out.print(array[i]);
}
System.out.println();
}
public static void lzq1(char[] array){
for(int i=0;i<array.length;i++){
System.out.print(array[i]);
}
System.out.println();
}
public static void main(String[] args) {
char[] array={'g','o','o','d'};
lzq1(array);
String[] array1={"好","好","学","习","天天向上"};
lzq(array1);
}
}
运行结果:
6.如何输出数组中的最大值和最小值
package javayouquqenti;
//输出一个数组中的最大值和最小值
public class ShuChuzuizhi {
public static void maopao(int[] array){
int tmp=0;
for(int i=0;i<array.length;i++){
for(int j=0;j<array.length-i-1;j++){
if(array[j]>array[j+1]){
tmp=array[j];
array[j]=array[j+1];
array[j+1]=tmp;
}
}
}
}
public static void main(String[] args) {
int array[]={100,65,341,98,35};
maopao(array);
System.out.println("最小值为: "+array[0]);
System.out.println("最大值为: "+array[array.length-1]);
}
}
运行结果为:
7.如何合并两个数组
package java练习;
//两个数组合并为一个新数组
import java.util.Arrays;
public class SiYue1104{
public static void main(String[] args) {
int[] a = {1,2,3,4,5};
int[] b = {6,7,8,9,10};
int[] c = new int[a.length+b.length];
System.arraycopy(a, 0, c, 0, a.length);
System.arraycopy(b, 0, c, a.length, b.length);
System.out.println(Arrays.toString(c));
}
}
运行结果为:
8.如何填充数组
第一种方法:
package zuoye;
//填充数组
public class Test002 {
public static void main(String[] args) {
int[] array=new int[20];
int n=4;
for(int i = 0;i < array.length;i++){//全部填充
array[i] = n;
System.out.print(array[i]+" ");
}
System.out.println();
System.out.println("===========");
for(int i = 0;i < array.length/2;i++){//部分填充
array[i] = n;
System.out.print(array[i]+" ");
}
}
}
运行结果为:
第二种方法:
package zuoye;
import java.util.Arrays;
public class Tianchonshuzu {
public static void main(String[] args) {
int[] a = new int[10];
Arrays.fill(a, 2);//全部填充
System.out.println(Arrays.toString(a));
Arrays.fill(a, 2,5,6);//部分填充(2号下标到5号下标填6)
System.out.println(Arrays.toString(a));
}
}
运行结果为:
9.初始化如何扩展数组(假设现有一个String数组,它的元素为“A”,“B”,“C”,“D”,扩展为6个元素的数组,增加“E”,“F”)
package javayouquqenti;
//把一个数组插入另一个数组
import java.util.Arrays;
public class KuoZhanshuzu {
public static void main(String[] args) {
String[] a = {"A","B","C","D"};
String[] b = new String[2+a.length];
for (int i = 0; i < a.length; i++) {
b[i] = a[i];
}
b[a.length] = "E";
b[a.length+1] = "F";
System.out.println(Arrays.toString(b));
}
}
运行结果为:
10.如何比较和排序数组
package zuoye;
//比较和排序两个数组
import java.util.Arrays;
public class Test004 {
public static void main(String[] args) {
int[] array = {7,4,3,6,2};
int[] array1 = {3,2,9,8,4,5};
Arrays.sort(array);
Arrays.sort(array1);//给数组排序
System.out.println("两个数组是否相同?"
+ Arrays.equals(array, array1));
}
}
运行结果:
11.如何删除数组指定元素
package zuoye;
//删除数组中的一个元素
import java.util.Arrays;
import java.util.Scanner;
public class Test003 {
public static int serach(int[] array,int val){//求要删除元素的下标
for(int i = 0;i < array.length;i++){
if(array[i] == val){
return i;
}
}
return -1;
}
public static void delete(int[] array,int val){
int index = serach(array,val);
if(index == -1){
return;
}
for(int i = index;i < array.length-1;i++){//删除一个元素后,新数组长度减1
array[i] = array[i+1];//删除一个元素后,被删除元素后面的元素减1
}
array = Arrays.copyOf(array, array.length-1);//拷贝新数组
System.out.println(Arrays.toString(array));//打印新数组
}
public static void main(String[] args) {
int[] array={1,3,5,6,1,9,852};
Scanner lzq=new Scanner(System.in);
System.out.println("输入要删除的元素 :");
int pwd=lzq.nextInt();//输入要删除的元素
delete(array,pwd);
}
}
运行结果: