日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

数组扩容 java_java 实现数组扩容与缩容案例

發布時間:2023/11/27 生活经验 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数组扩容 java_java 实现数组扩容与缩容案例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我就廢話不多說了,大家還是直接看代碼吧~

public static T[] dilatationArray(T[] datas,int newlen) {

//不能為負數

newlen = newlen<0?0:newlen;

//生成一個新數組,并copy原值到新數組

return Arrays.copyOf(datas, newlen);

}

package testpro;

import java.util.Arrays;

/**

* 數組擴容縮容

* 擴容之后擴容部分按照類型默認賦值為0,false或者null

* @author Administrator

*

*/

public class ArrayDilatation {

public static void main(String[] args) {

Student[] students = new Student[60];

for (int i=0;i

System.out.println(students[i]);

students[i] = new Student("Stu"+i,"Gen"+i,i);

System.out.println(students[i]);

}

System.out.println(students);

students = dilatationArray(students, 60);

for (Student student : students) {

System.out.println(student);

}

System.out.println(students);

}

public static T[] dilatationArray(T[] datas,int newlen) {

//不能為負數

newlen = newlen<0?0:newlen;

//生成一個新數組,并copy原值到新數組

return Arrays.copyOf(datas, newlen);

}

}

class Student{

private String name;

private String gender;

private int age;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getGender() {

return gender;

}

public void setGender(String gender) {

this.gender = gender;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public Student(String name, String gender, int age) {

super();

this.name = name;

this.gender = gender;

this.age = age;

}

@Override

public String toString() {

return "Student [name=" + name + ", gender=" + gender + ", age=" + age + "]";

}

}

補充:Java實現一個棧(通過自定義數組實現,可以自動擴容)

Java實現一個棧(可以自動擴容)

先聲明接口interface Stack

/**

* @author yinglongwu

*/

//適用泛型

public interface Stack {

int getSize();

boolean isEmpty();

void push(E e);//入棧

E pop();//出棧

E peek();//查看棧頂元素

}

class ArrayStack實現接口

這里是通過自定義的Array類里的方法來實現Stack接口,進而形成這個ArrayStack類

自定義的Array類:點我跳轉

/**

* @author yinglongwu

*/

//這里通過自定義的Array類里的方法實現Stack接口,進而形成這個ArrayStack,

//并且也可以自動擴容

public class ArrayStack implements Stack {

//這個Array是自己封裝的

Array array;

//有參構造

public ArrayStack(int capacity) {

array = new Array<>(capacity);

}

//無參構造

public ArrayStack() {

array = new Array<>();//使用Array類里的無參構造

}

//獲取棧的最大容量

public int getCapacity() {

return array.getCapacity();//調用的方法也是自己封裝的Array類里的方法

}

//對接口中的方法進行重寫

@Override

public int getSize() {

return array.getSize();

}

@Override

public boolean isEmpty() {

return array.isEmpty();

}

//入棧

@Override

public void push(E e) {

array.addLast(e);

}

//出棧

@Override

public E pop() {

return array.removeLast();

}

//查看棧頂元素

@Override

public E peek() {

return array.getLast();

}

//對toString方法進行重寫,方便輸出棧的基本信息

@Override

public String toString() {

StringBuilder res = new StringBuilder();

res.append("Stack: ");

res.append('[');

for (int i = 0; i < array.getSize(); i++) {

res.append(array.get(i));

if (i != array.getSize()-1) {

res.append(", ");

}

}

res.append("] top");//表明右側是棧頂

return res.toString();

}

}

測試使用這個ArrayStack棧

/**

* @author yinglongwu

*/

public class Main {

public static void main(String[] args) {

//測試class ArrayStack

ArrayStack stack = new ArrayStack();//new ArrayStack()里的Integer可寫可不寫

//包裝類和其對應的基本數據類型可以自動轉換

//將0到4入棧

for (int i = 0; i < 5; i++) {

stack.push(i);

System.out.println(stack);

}

//出一次棧

stack.pop();

System.out.println(stack);

}

}

輸出結果

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持聚米學院。如有錯誤或未考慮完全的地方,望不吝賜教。

總結

以上是生活随笔為你收集整理的数组扩容 java_java 实现数组扩容与缩容案例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。