国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java 實(shí)現(xiàn)數(shù)組擴(kuò)容與縮容案例

瀏覽:2日期:2022-08-17 11:49:59

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

public static <T> T[] dilatationArray(T[] datas,int newlen) { //不能為負(fù)數(shù) newlen = newlen<0?0:newlen; //生成一個(gè)新數(shù)組,并copy原值到新數(shù)組 return Arrays.copyOf(datas, newlen); }

package testpro; import java.util.Arrays; /** * 數(shù)組擴(kuò)容縮容 * 擴(kuò)容之后擴(kuò)容部分按照類型默認(rèn)賦值為0,false或者null * @author Administrator * */public class ArrayDilatation { public static void main(String[] args) { Student[] students = new Student[60]; for (int i=0;i<students.length;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> T[] dilatationArray(T[] datas,int newlen) { //不能為負(fù)數(shù) newlen = newlen<0?0:newlen; //生成一個(gè)新數(shù)組,并copy原值到新數(shù)組 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 + ']'; }}

補(bǔ)充:Java實(shí)現(xiàn)一個(gè)棧(通過自定義數(shù)組實(shí)現(xiàn),可以自動(dòng)擴(kuò)容)

Java實(shí)現(xiàn)一個(gè)棧(可以自動(dòng)擴(kuò)容)

先聲明接口interface Stack<E>

/** * @author yinglongwu */ //適用泛型public interface Stack<E> { int getSize(); boolean isEmpty(); void push(E e);//入棧 E pop();//出棧 E peek();//查看棧頂元素}class ArrayStack<E>實(shí)現(xiàn)接口

這里是通過自定義的Array類里的方法來(lái)實(shí)現(xiàn)Stack接口,進(jìn)而形成這個(gè)ArrayStack類

自定義的Array類:點(diǎn)我跳轉(zhuǎn)

/** * @author yinglongwu *///這里通過自定義的Array類里的方法實(shí)現(xiàn)Stack接口,進(jìn)而形成這個(gè)ArrayStack,//并且也可以自動(dòng)擴(kuò)容public class ArrayStack<E> implements Stack<E> { //這個(gè)Array<E>是自己封裝的 Array<E> array; //有參構(gòu)造 public ArrayStack(int capacity) { array = new Array<>(capacity); } //無(wú)參構(gòu)造 public ArrayStack() { array = new Array<>();//使用Array類里的無(wú)參構(gòu)造 } //獲取棧的最大容量 public int getCapacity() { return array.getCapacity();//調(diào)用的方法也是自己封裝的Array類里的方法 } //對(duì)接口中的方法進(jìn)行重寫 @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(); } //對(duì)toString方法進(jìn)行重寫,方便輸出棧的基本信息 @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');//表明右側(cè)是棧頂 return res.toString(); }}測(cè)試使用這個(gè)ArrayStack棧

/** * @author yinglongwu */public class Main { public static void main(String[] args) { //測(cè)試class ArrayStack ArrayStack<Integer> stack = new ArrayStack<Integer>();//new ArrayStack<Integer>()里的Integer可寫可不寫 //包裝類和其對(duì)應(yīng)的基本數(shù)據(jù)類型可以自動(dòng)轉(zhuǎn)換 //將0到4入棧 for (int i = 0; i < 5; i++) { stack.push(i); System.out.println(stack); } //出一次棧 stack.pop(); System.out.println(stack); } }

輸出結(jié)果

java 實(shí)現(xiàn)數(shù)組擴(kuò)容與縮容案例

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 合作市| 泾源县| 中卫市| 蓝田县| 西盟| 右玉县| 大新县| 布拖县| 碌曲县| 沈阳市| 获嘉县| 南靖县| 北票市| 南丹县| 安图县| 雅安市| 开封县| 兴海县| 普陀区| 衡阳县| 彩票| 潼南县| 历史| 蒙阴县| 双流县| 大新县| 郑州市| 高邮市| 惠来县| 通山县| 香格里拉县| 泸定县| 浠水县| 宿州市| 河曲县| 台东县| 南华县| 汝阳县| 即墨市| 明星| 平顶山市|