国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java ArrayList中存放引用數據類型的方式

Java ArrayList中存放引用數據類型的方式

2022-03-02 00:39小白的學習筆記 Java教程

這篇文章主要介紹了Java ArrayList中存放引用數據類型的方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

ArrayList中存放引用數據類型

ArrayList中存放引用類型時,存放的是一個引用,因此在放入ArrayList之后再進行改動會影響到ArrayList中的值

看下面一個例子

import java.util.ArrayList;
public class Student implements Cloneable{
  private int age;
  private String name;
  public static void main(String[] args) {
      ArrayList<Student> students = new ArrayList<Student>();
      Student st = new Student();
      st.age = 10;
      st.name = "marco";
      students.add(st);
      st.age = 20;    //修改age值
      System.out.println(students.get(0).age);    //輸出為20
  }
}

同樣,如果ArrayList中存放的也是ArrayList類型,如ArrayList<ArrayList<Integer>>,對里面ArrayList的修改同樣會影響到外層的ArrayList,如果想不受到影響可以在放入ArrayList時進行clone操作,對于ArrayList來說可以使用new ArrayList<ArrayList<Integer>>(list)來進行復制。

 

Java 引用數據類型 ArrayList集合

引用數據類型(類)

分類

提到引用數據類型(類),其實我們對它并不陌生,如使用過的Scanner類、Random類。

我們可以把類的類型為兩種:

  • 第一種,Java為我們提供好的類,如Scanner類,Random類等,這些已存在的類中包含了很多的方法與屬性,可供我們使用。
  • 第二種,我們自己創建的類,按照類的定義標準,可以在類中包含多個方法與屬性,來供我們使用。

類的定義和使用

java代碼映射成現實事物的過程就是定義類的過程。

我們就拿一部手機進行分析,它能用來做什么呢?它可以打電話,上網,聊微信等,這些就是手機所提供的功能,也就是方法;手機也有它的特征,如顏色、尺寸大小、品牌型號等,這些就是手機的特征,也就是屬性。

目前,我們只關注類中的屬性,類中的方法在面向對象部分再進行學習。

類的定義格式

創建java文件,與類名相同
public class 類名{
  數據類型  屬性名稱1;
  數據類型  屬性名稱2;
  …
}

例如:

public class Phone {
  /*
   * 屬性
   */
  String brand;// 品牌型號
  String color;// 顏色
  double size; // 尺寸大小
}

類的使用方式

有如下步驟

  • 導包:我們將所有的類放到同一個文件夾下,可以避免導包。
  • 創建對象:數據類型 變量名 = new 數據類型();
  • 調用方法:目前我們定義的自定義類不涉及方法,只是屬性(自定義類中的方法部分在面向對象部分講解)
  • 訪問屬性:變量名.屬性(這是當前的方式,后期會采取調用方法的方式替代掉直接訪問的方式來完成對屬性的訪問。)

當有了Phone數據類型的變量后,我們就可以使用Phone類中的屬性了。對屬性的訪問我們來演示一下,如下所示:

public class Test {
  public static void main(String[] args) {
      //定義了一個Phone類型的變量p
      Phone p = new Phone();
      /*
       * 通過p,使用Phone中的屬性
       */
      //訪問p中的brand品牌屬性
     p.brand = "蘋果6s";
    //訪問p中的color顏色屬性
      p.color = "白色";
     //訪問p中的size尺寸大小屬性
      p.size = 5.5;
      System.out.println("手機品牌為" + p.brand);
      System.out.println("手機顏色為" + p.color);
      System.out.println("手機尺寸大小為" + p.size);
  }
}

自定義類的內存圖演示:

上述代碼中,通過類Phone創建出來的變量p,它相當于我們生活中的盒子,里面包含了它能夠使用的屬性。

通過 p.屬性名 就可以對屬性進行操作

與引用類型數組類似,引用類型的自定義類型的變量,直接變量時,結果為對象地址值,這里可以通過內存圖簡單解釋。

Java ArrayList中存放引用數據類型的方式

ArrayList 集合

ArrayList集合是程序中最常見的一種集合,它屬于引用數據類型(類)。在ArrayList內部封裝了一個長度可變的數組,當存入的元素超過數組長度時,ArrayList會在內存中分配一個更大的數組來存儲這些元素,因此可以將ArrayList集合看作一個長度可變的數組。

創建

導包:import java.util.ArrayList;

創建對象:與其他普通的引用數據類型創建方式完全相同,但是要指定容器中存儲的數據類型:

ArrayList<要存儲元素的數據類型> 變量名 = new ArrayList<要存儲元素的數據類型>();

l 集合中存儲的元素,只能為<>括號中指定的數據類型元素;

l “<要存儲元素的數據類型>”中的數據類型必須是引用數據類型,不能是基本數據類型;

下面給出8種基本數據類型所對應的引用數據類型表示形式:

基本數據類型

對應的引用數據類型表示形式

byte

Byte

short

Short

Int

Integer

long

Long

float

Float

double

Double

char

Character

boolean

Boolean

下面是一些創建arraylist的實例:

存儲String類型的元素
ArrayList<String> list = new ArrayList<String>();
存儲int類型的數據
ArrayList<Integer> list = new ArrayList<Integer>(); 
存儲Phone類型的數據
ArrayList<Phone> list = new ArrayList<Phone>();

方法

返回值類型 方法和描述
boolean add(E e) 將指定的元素添加到集合中
void add(int index, E element) 在列表中指定的位置上插入指定的元素。
boolean addAll(Collection<? extends E> c) 追加指定集合的所有元素到這個列表的末尾,按他們的指定集合的迭代器返回。
boolean addAll(int index, Collection<? extends E> c) 將指定集合中的所有元素插入到該列表中,從指定位置開始。
void clear() 從這個集合中移除所有的元素。
Object clone() 返回該 ArrayList實例淺拷貝。
boolean contains(Object o) 返回 true如果這個列表包含指定元素。
void ensureCapacity(int minCapacity) 增加集合的容量,雖說arraylist本省就是可變的,但當你可以預先確定一定容量時,可以增加效率
E get(int index) 返回此列表中指定元素的位置
int indexOf(Object o) 返回此列表中指定元素的第一個出現的索引,或-如果此列表不包含元素,或- 1。
boolean isEmpty() 返回 true如果此列表不包含元素。
Iterator<E> iterator() 在這個列表中的元素上返回一個正確的順序。
int lastIndexOf(Object o) 返回此列表中指定元素的最后一個發生的索引,或-如果此列表不包含元素,或- 1。
ListIterator<E> listIterator() 返回列表元素的列表迭代器(在適當的順序)。
ListIterator<E> listIterator(int index) 在列表中的元素上返回列表迭代器(在適當的順序),從列表中的指定位置開始。
E remove(int index) 移除此列表中指定位置的元素。
boolean remove(Object o) 從該列表中移除指定元素的第一個發生,如果它是存在的。
boolean removeAll(Collection<?> c) 從這個列表中移除包含在指定集合中的所有元素。
boolean removeIf(Predicate<? super E> filter) 刪除滿足給定謂詞的這個集合的所有元素。
protected void removeRange(int fromIndex, int toIndex) 從列表中刪除所有的元素的索引 fromIndex之間,包容性,和 toIndex,獨家。
void replaceAll(UnaryOperator<E> operator) 用將運算符應用到該元素的結果替換此列表中的每個元素。
boolean retainAll(Collection<?> c) 僅保留包含在指定集合中的列表中的元素。
E set(int index, E element) 用指定元素替換此列表中指定位置的元素。
int size() 返回此列表中元素的數目。
void sort(Comparator<? super E> c) 分類列表使用提供的 Comparator比較元素。
Spliterator<E> spliterator() 創建一個后期綁定和快速失敗 Spliterator超過此列表中的元素。
List<E> subList(int fromIndex, int toIndex) 返回一個視圖之間的指定 fromIndex,包容,和 toIndex這份名單的部分,獨家。
Object[] toArray() 返回一個數組,包含在這個列表中的所有元素在適當的順序(從第一個到最后一個元素)。
<T> T[] toArray(T[] a) 返回一個數組,包含在這個列表中的所有元素在適當的順序(從第一到最后一個元素);返回數組的運行時類型是指定的數組的運行時類型。
void trimToSize() 裝飾這 ArrayList實例是列表的當前容量。

 

下面是一些實例:

import java.util.ArrayList;
public class ArrayListDemo01 {
  public static void main(String[] args) {
      // 創建ArrayList集合
      ArrayList<String> list = new ArrayList<String>();
      // 向集合中添加元素
      list.add("stu1");
      list.add("stu2");
      list.add("stu3");
      list.add("stu4");
      // 獲取集合中元素的個數
      System.out.println("集合的長度:" + list.size());
      // 取出并打印指定位置的元素
      System.out.println("第1個元素是:" + list.get(0));
      System.out.println("第2個元素是:" + list.get(1));
      System.out.println("第3個元素是:" + list.get(2));
      System.out.println("第4個元素是:" + list.get(3));
  }
}

注意:ArrayList集合相當于是一個長度可變的數組,所以訪問集合中的元素也是采用索引方式訪問,第一個元素存儲在索引0的位置,第二個元素存儲在索引1的位置,依次類推

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/x_i_y_u_e/article/details/47955695

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产欧美精品区一区二区三区 | 黄色免费网站在线观看 | 国产精品免费久久久久久久久 | 欧美激情一区二区 | 中文字幕在线永久在线视频 | 久久影院一区 | xx视频在线观看 | 一区二区三区回区在观看免费视频 | 三级黄色片在线免费观看 | 国产精品综合视频 | 国产精品国产精品国产专区不片 | 日韩视频免费在线观看 | 成年免费观看 | 久久久www免费人成精品 | 久久蜜桃精品一区二区三区综合网 | 先锋av资源| 一区二区av | 专干老肥女人88av | 性色国产 | 日韩精品无码一区二区三区 | 国产精品网站在线观看 | 中文字幕一区二区三区乱码图片 | 日韩欧美在线观看视频 | 羞羞影视 | 一区二区三区中文字幕 | 天天射影院 | 一本色道久久综合狠狠躁篇的优点 | 懂色aⅴ精品一区二区三区蜜月 | 男人午夜视频在线观看 | 亚洲精品成人免费 | 国产精品久久久久久久久免费桃花 | 久久国产精品影视 | 日韩av手机版 | 国产精品精品久久久 | 狠狠操影院 | 久久久久网站 | 日韩欧美中文字幕在线视频 | 亚洲在线一区二区 | 久草热8精品视频在线观看 欧美黄色小视频 | 另类一区| 欧美一区二区三区成人 |