最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2021年02月04日 08:47:41   作者:Code,BetterCode  
這篇文章主要介紹了java 實(shí)現(xiàn)數(shù)組擴(kuò)容與縮容案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

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

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è)棧(通過(guò)自定義數(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)接口

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

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

/**
 * @author yinglongwu
 */
//這里通過(guò)自定義的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é)果

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

相關(guān)文章

  • java類加載機(jī)制、類加載器、自定義類加載器的案例

    java類加載機(jī)制、類加載器、自定義類加載器的案例

    這篇文章主要介紹了java類加載機(jī)制、類加載器、自定義類加載器的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • 集成apollo動(dòng)態(tài)日志取締logback-spring.xml配置

    集成apollo動(dòng)態(tài)日志取締logback-spring.xml配置

    這篇文章主要為大家介紹了集成apollo動(dòng)態(tài)日志取締logback-spring.xml配置的過(guò)程內(nèi)容詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-02-02
  • 關(guān)于在Java中如何使用yaml的實(shí)例

    關(guān)于在Java中如何使用yaml的實(shí)例

    這篇文章主要介紹了關(guān)于在Java中如何使用yaml的實(shí)例,YAML是一種輕量級(jí)的數(shù)據(jù)序列化格式。它以易讀、易寫的文本格式表示數(shù)據(jù),支持列表、字典等各種數(shù)據(jù)結(jié)構(gòu),被廣泛應(yīng)用于配置文件、數(shù)據(jù)傳輸協(xié)議等領(lǐng)域,需要的朋友可以參考下
    2023-08-08
  • Java利用Dijkstra算法求解拓?fù)潢P(guān)系最短路徑

    Java利用Dijkstra算法求解拓?fù)潢P(guān)系最短路徑

    迪杰斯特拉算法(Dijkstra)是由荷蘭計(jì)算機(jī)科學(xué)迪家迪杰斯特拉于1959年提出的,因此又叫狄克斯特拉算法。本文將利用迪克斯特拉(Dijkstra)算法求拓?fù)潢P(guān)系最短路徑,感興趣的可以了解一下
    2022-07-07
  • JAVA字符串格式化-String.format()的使用

    JAVA字符串格式化-String.format()的使用

    本篇文章主要介紹了JAVA字符串格式化-String.format()的使用,具有一定的參考價(jià)值,有需要的可以了解一下。
    2016-11-11
  • Mybatis-plus和Mybatis出現(xiàn)版本不兼容的問(wèn)題解決

    Mybatis-plus和Mybatis出現(xiàn)版本不兼容的問(wèn)題解決

    MyBatis-Plus?與?MyBatis?之間的兼容性問(wèn)題通常是由于版本不匹配引起的,本文主要介紹了Mybatis-plus和Mybatis出現(xiàn)版本不兼容的問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • Java?ConcurrentHashMap的源碼分析詳解

    Java?ConcurrentHashMap的源碼分析詳解

    ConcurrentHashMap(CHM)是日常開(kāi)發(fā)中使用頻率非常高的一種數(shù)據(jù)結(jié)構(gòu),想對(duì)于普通的HashMap,CHM提供了線程安全的讀寫,CHM里面使用了許多比較精妙的優(yōu)化&操作。本文主要對(duì)CHM的整體結(jié)構(gòu)、初始化,查找,插入等做分析
    2023-03-03
  • [Java]詳解Socket和ServerSocket學(xué)習(xí)筆記

    [Java]詳解Socket和ServerSocket學(xué)習(xí)筆記

    即時(shí)類應(yīng)用或者即時(shí)類的游戲,HTTP協(xié)議很多時(shí)候無(wú)法滿足于我們的需求,這會(huì),Socket對(duì)于我們來(lái)說(shuō)就非常實(shí)用了。本篇文章主要介紹了Socket和ServerSocket,有興趣的可以了解一下。
    2016-12-12
  • springboot獲取真實(shí)ip地址的方法實(shí)例

    springboot獲取真實(shí)ip地址的方法實(shí)例

    在使用springboot時(shí),需要獲取訪問(wèn)客戶端的IP地址,所以下面這篇文章主要給大家介紹了關(guān)于springboot獲取真實(shí)ip地址的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • 一小時(shí)迅速入門Mybatis之Prepared Statement與符號(hào)的使用

    一小時(shí)迅速入門Mybatis之Prepared Statement與符號(hào)的使用

    這篇文章主要介紹了一小時(shí)迅速入門Mybatis之Prepared Statement與符號(hào)的使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09

最新評(píng)論

靖远县| 环江| 琼中| 合肥市| 富源县| 阿鲁科尔沁旗| 潜江市| 赣州市| 中卫市| 永德县| 忻城县| 彭泽县| 边坝县| 东乌| 多伦县| 龙岩市| 连云港市| 凤山市| 鄱阳县| 土默特左旗| 瑞金市| 临安市| 柳河县| 磐石市| 略阳县| 镇平县| 西丰县| 孟连| 乳源| 巧家县| 寿宁县| 宁蒗| 丹阳市| 武穴市| 常宁市| 佛学| 晋州市| 岳阳市| 广宗县| 樟树市| 蕉岭县|