1. 程式人生 > >JAVA 泛型,集合使用方法

JAVA 泛型,集合使用方法

工作內容:

1.集合學習

2.泛型學習

學習分享:

1.典型泛型集合List<T>,HashMap<K,V>

常用定義泛型集合:

List<T> list = new ArrayList<T>();

【儲存型別必須是T型別,可以用Object,來使用這樣就可以儲存所有型別物件,拿出來時需要強制轉型】

Map<K,V> map = new HashMap<K,V>();

【K是鍵值(Key),V是值(Values),可以通過map.put()來新增成員,通過String str =  map.get(鍵值);來獲取鍵值相應的值】

Map例項:

//Map的基礎使用
import java.util.HashMap;
import java.util.Map;

public class MapTest {
	public static void main(String[] args) {
		String[] names = { "花兒", "小花", "喊我" };
		String[] ifo = { "小女孩", "小狗", "大班", "年輕人" };
		Map<String, String> map = new HashMap<String, String>();
		for (int i = 0; i < names.length; i++) {
			map.put(names[i], ifo[i]);
		}
		String ifoString = map.get("小花");
		System.out.println(ifoString);
	}
}
List例項:
//List基礎使用
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;

public class ListTest {
	static Pet cat2;
	static List<Pet> pets;
	public static void main(String[] args) {
		pets = new ArrayList<Pet>();
		Pet cat1 = new Pet("小貓", "貓");
		cat2 = new Pet("大貓", "貓");
		Pet cat3 = new Pet("老貓", "貓");
		Dog dog1 = new Dog("小黃", "我餓了");
		Dog dog2 = new Dog("小白", "我餓了");
		Dog dog3 = new Dog("小金", "我餓了");
		pets.add(cat1);
		pets.add(cat2);
		pets.add(cat3);
		ArrayList<Object> list = new ArrayList<Object>();
		list.add(cat1);
		list.add(dog1);
		list.add(dog2);
		list.add(cat2);
		list.add(cat3);
		list.add(dog3);
		for (int i = 0; i < list.size(); i++) {
			if (list.get(i) instanceof Pet) {
				Pet p1 = (Pet) list.get(i);
				System.out.println(p1.name + ":" + p1.type);
			} else {
				Dog dog = (Dog) list.get(i);
				System.out.println(dog.name + ":" + dog.say);
			}
		}
		for (Pet p : pets) {
			if (p.name.equals("大貓")) {
				System.out.println(p.name + ":" + p.type);
			}
		}
		search(pets);
		Iterator<Pet> iterator = pets.iterator();
		while (iterator.hasNext()) {
			Pet pet = (Pet) iterator.next();
			System.out.println(pet.name + "::" + pet.type);
		}

	}

	public static <T> void search(T t) {
		Vector<Pet> vPets = new Vector<>();
		vPets.addAll(pets);
		if (vPets.contains(cat2)) {
			System.out.println("存在cat2");
		}
		System.out.println(vPets);
	}
}


相關推薦

JAVA 集合使用方法

工作內容: 1.集合學習 2.泛型學習 學習分享: 1.典型泛型集合List<T>,HashMap<K,V> 常用定義泛型集合: List<T> list = new ArrayList<T>(); 【儲存型別必須是T型別,可

java第15天----集合中的

知識總結 List Vector LinkedList List的去重—contains Set HashSet treeSet 泛型 泛型:通過<資料型別>接收一種資料型別,在編譯的時候會使用這種型別檢測集合中的元素,如果不是&l

Java集合筆記

第二章 情況 參數 編譯器 類型擦除 多個參數 一個 each ava 第一章 Java的泛型為了兼容性和防止代碼爆炸,在編譯成字節碼時會進行類型擦除,編譯器自動添加代碼做類型轉換(用到List<Integer>的地方用Integer來做轉換),自動做裝箱拆箱,

java內部類列舉型別

(1)泛型 JDK1.5之後增加的新功能,泛型可以解決資料型別的安全性問題,他主要的原理,是在類宣告的時候通過一個標識表示類中某個屬性的型別或者是某個方法的返回值及引數型別。 格式:訪問許可權 class 類名稱<泛型,泛型...>{ 屬性 方法} 泛型方法:訪問許

Java 你瞭解型別擦除嗎?

大家可能會有疑問,我為什麼叫做泛型是一個守門者。這其實是我個人的看法而已,我的意思是說泛型沒有其看起來那麼深不可測,它並不神祕與神奇。泛型是 Java 中一個很小巧的概念,但同時也是一個很容易讓人迷惑的知識點,它讓人迷惑的地方在於它的許多表現有點違反直覺。

轉:Java 你瞭解型別擦除嗎?

泛型,一個孤獨的守門者。 大家可能會有疑問,我為什麼叫做泛型是一個守門者。這其實是我個人的看法而已,我的意思是說泛型沒有其看起來那麼深不可測,它並不神祕與神奇。泛型是 Java 中一個很小巧的概念,但同時也是一個很容易讓人迷惑的知識點,它讓人迷惑的地方

java集合(八)

1.泛型:本質是引數化型別,將所操作的資料型別指定為一個引數,泛型的型別引數只能是類型別,不能是簡單型別;2.只有實參化的泛型介面或泛型類參能充當父介面或父類;3.泛型方法的定義格式: 訪問許可權修飾符   <T,S,...> 返回型別 方法名(形參列表){}4.

java怎麼這麼難

泛型,就是引數化型別。好吧,這是我抄的定義,自己都覺得難以理解。還是舉個簡單例子吧。 public class SimpleJava<T> { T t; public static void main(String[] args

菜鳥譯文——使用Java構造模板方法模式

如果你發現你有很多重複的程式碼,你可能會考慮用模板方法消除容易出錯的重複程式碼。這裡有一個例子:下面的兩個類,完成了幾乎相同的功能:   例項化並初始化一個Reader來讀取CSV檔案; 讀取每一行並解析; 把每一行的字元填充到Product或Customer物件;

Java結合JSONObject動態生成指定的物件

private <T> T getTargetClass(String resultString, T t) { System.out.println(resultString); JSONObject result = JSONObject.from

用了這麼多年的 Java 你對它到底有多瞭解?

> 本篇文章 idea 來自[用了這麼多年的泛型,你對它到底有多瞭解?](https://www.cnblogs.com/huangxincheng/p/12764925.html),恰好當時看了「深入 Java 虛擬機器的第三版」瞭解泛型的一些歷史,感覺挺有意思的,就寫了寫 Java 版的泛型。 作為一個

重溫Java帶你更深入地理解它更好的使用它!

## **1. 引言** jdk5.0中引入了Java泛型,目的是減少錯誤,並在型別上新增額外的抽象層。 本文將簡要介紹Java中的泛型、泛型背後的目標以及如何使用泛型來提高程式碼的質量。 ## **2. 為什麼要用泛型?** 設想一個場景,我們希望用Java建立一個列表來儲存*Integer*;程式碼

java 詳解-絕對是對方法講解最詳細的沒有之一

對java的泛型特性的瞭解僅限於表面的淺淺一層,直到在學習設計模式時發現有不瞭解的用法,才想起詳細的記錄一下。 本文參考java 泛型詳解、Java中的泛型方法、 java泛型詳解 1. 概述 泛型在java中有很重要的地位,在面向物件程式設計及各種設計模式中有非常廣泛

java 在類介面和方法上的應用

雖然我在泛型的使用這塊,應用的地方不是很多,但是還是要總結一下的,這一篇文章主要是從使用的角度,對泛型進行介紹。 如果一個類有一個或者多個型別的變數,那麼這個類就是泛型類,這些型別變數是類的型別引數。下邊這個類是一個簡單的java類,有一個屬性t,它的型別是Object 方

java 詳解(普通、 萬用字元、 介面陣列方法巢狀)

JDK1.5 令我們期待很久,可是當他釋出的時候卻更換版本號為5.0。這說明Java已經有大幅度的變化。本文將講解JDK5.0支援的新功能-----Java的泛型. 1、Java泛型  其實Java

JAVA-型別擦除太噁心但專案中大量使用以及型別擦除引起的問題及解決方法

泛型概念的提出(為什麼需要泛型)? 首先,我們看下下面這段簡短的程式碼: 1 public class GenericTest { 2 3 public static void main(String[] args) { 4

第10篇-JAVA 集合框架-JAVA

java集合框架 java泛型 第10篇-JAVA 集合框架-JAVA 泛型每篇一句 :所有的不甘,都是因為還心存夢想初學心得: 不是每件事都註定會成功,但是每件事都值得一試(筆者:JEEP/711)[JAVA筆記 | 時間:2017-04-15| JAVA 集合框架/JAVA 泛型 ]1.JAVA

Java方法和構造函數

generic 類型參數 -s con ner 實際類型 非靜態方法 gen 尖括號 可以在方法聲明中定義類型參數,它們在方法的返回類型之前的尖括號中指定。包含泛型方法聲明的類型不必是通用類型。可以在非靜態方法聲明中使用為泛型類型指定的類型參數。 示例 以下代碼顯示如何為方

Java 基礎 -- 集合、IO、反射

array ger read let input 處理 chm 媒體 files 計劃把 Java 基礎的有些部分再次看一遍,鞏固一下,下面以及以後就會分享自己再次學習的一點筆記!不是有關標題的所有知識點,只是自己覺得模糊的一些知識點。 1.  對於泛型類而言,你若沒有指明

java的一些知識點:Java--應用--接口、方法數組、嵌套

泛型數組 light inf 返回值 通過 類實例化 this str set 感謝這位大神: http://blog.csdn.net/waldmer/article/details/12773021 1、泛型接口 1.1泛型接口的基本概念 1.2泛型接口實現的兩