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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java集合基础_java常用集合基础知识

發布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java集合基础_java常用集合基础知识 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【純出自個人筆記,如有錯誤,望改正,謝謝哈!

學習~】

一、Java集合

1、集合類:容器類 裝對象的(不能存放基本數據類型,但是里面看到的其實是包裝類型)

java.util包

ArrayList底層是一個對象數組

--------------------------------------------------------------------------------------------

List中是可以存放重復元素的。Set是不能有重復元素.

Ⅰ:ArrayList:

a. 添加 :

add();里面可以存放字符串或者基本包裝類型

ArrayList也可以存放布爾類型和對象

ArrayList list=new ArrayList();

list.add(1,"aa");這是指將aa字符串存放在arraylist集合索引的1位置(添加到指定位置);

list.size();是獲取元素的個數,和數組的length,字符串的length()差不多。

list.add(list1);add里面還是可以放集合的

b.修改 :

list.set(0,200);這是修改指定位置的元素,這里是指修改了arraylist集合0索引的值該為200;集合的索引和數組的下標差不多。

c.獲得 :

list.get(0);獲得,這是獲得list集合里的0索引處的值。它返回的類型是Object(Object obj=list.get(0);) 然后可以直接輸出這s.o.p(obj);打印出來的就是list集合的元素

d.遍歷集合:

用for循環也可以,但是集合List集合一般都用迭代器遍歷集合(Iterator,下面介紹)

e.清空集合元素:

list.clear();清空掉集合中所有的元素,如果清空,輸出就一對中括號“[]”表示集合里面沒有元素了。o(∩_∩)o

f.移除/刪除 集合中的元素:

remove();這是刪除集合中的某個元素。比如list.remove(1);這就是刪除掉集合中索引為1的元素(第二個),list.remove("aa");這是刪除掉集合中的元素,就是如果集合中有aa的字符串,就刪掉。 ?-----list.remove(new Integer(12));注意這種:要刪除集合中的數值,就必須要這樣(要指定包裝類)否則刪除的就是索引為12的元素,如果元素個數沒有13個,那么就會出現 下標越界異常。

---------------------------------------------------------------------------------------

Ⅱ:LinkedList:ArrayList便于進行修改、獲得值的操作 ?LinkedList便于進行增加和刪除操作

a.添加元素:

LinkedList添加元素也是add();基本用法和ArrayList差不多。但是LinkedList多了2個功能:addFirst()和addLast();這2個,比如list.addFirst("asd");這是在集合的第一個位置放置asd的字符串;list.addLast("aa");這是在集合的最后一個位置放置aa字符串;

b.遍歷:

和arraylist也是一樣的。既可以用For循環遍歷,也可以用迭代器遍歷,推薦迭代器。 需要注意的是:在迭代器循環體內是不可以直接對集合進行添加刪除操作的。

---------------------------------------------------------------------------------------------

Ⅲ:Stack類表示后進先出(LIFO)的對象堆棧(繼承自Vector)。

a.添加元素

stack添加元素是用push()方法的,比如:s.push("aaa");這是指在statck中添加aaa元素壓入棧中

b.移除元素:

s.pop();這是移除棧頂的元素 ?是棧頂

c.查看元素:

Syso(s.peek());查看棧頂的元素,表示只查看不剔除。

---------------------------------------------------------------------------------------------

Ⅳ:Vector ?底層是對象數組,線程安全的(同步)

Vector非常類似ArrayList,但是Vector是同步的。由Vector創建的Iterator,雖然和ArrayList創建的 Iterator是同一接口,但是,因為Vector是同步的,當一個Iterator被創建而且正在被使用,另一個線程改變了Vector的狀態(例如,添加或刪除了一些元素),這時調用Iterator的方法時將拋出ConcurrentModificationException,因此必須捕獲該異常。

---------------------------------------

以上是List 列表的知識點

===================================================================================

下面是Set 集的知識點回顧:

===================================================================================

Set ? 不能有重復的元素、沒有索引

Ⅰ、HashSet

a.添加元素:

set.add("aa"); set.add(new Object());基本上也差不多

b.清除元素用的也是clear();

c.移除 ?remove()的用法

d,遍歷HashSet: 注意,這里只能用迭代器(Iterator)遍歷,因為Set集中是沒有索引的,所以不能用for。

例如: Iterator it = set.iterator();

while(it.hasNext()){

Object temp = it.next();

System.out.println(temp);

}

e,//由Object類中繼承來的hashcode、equals方法

//Set中判斷是否是重復的元素的過程:

//1、調用對象的hashcode方法,看返回的哈希碼值是否相同,若不相同,則認為是不同的對象

//2、若相同,則再調用equals方法進行判斷,若返回false,則認為是不同的對象,否則(返回的是true)則認為是同一個對象

例如 Student stu1 = new Student(1000,"張三");

Student stu2 = new Student(1001,"張三");

// System.out.println(stu1.hashCode());

// System.out.println(stu2.hashCode());

set.add(stu1);

set.add(stu2);

-----------------------------------------------------------------------------------------------

Set:不按照索引、不按照放入的次序存儲元素-->無序的

//不能存放重復元素

Ⅱ:TreeSet:具有排序功能的

a.添加元素也是add();//若放入的是數值,則按照數值大小升序排列;//若是字符串則按照字母的字 典順序。需要注意的是:放入的元素得是同一類型的。

b//若要將自定義的對象放入TreeSet中,必須該對象所在的類是實現了Comparable接口

例如:Student stu1 = new Student(1003,"zhangsan");

Student stu2 = new Student(1000,"lisi");

Student stu3 = new Student(1001,"wangwu");

set.add(stu1);

set.add(stu2);

set.add(stu3);

Iterator it = set.iterator();

while(it.hasNext()){

Student stu = it.next();

System.out.println(stu.getId()+"\t"+stu.getName());

}

System.out.println(set);

public class Student implements Comparable{

private int id;

private String name;

>>>>>>(此處省略構造方法和set、get方法)<<<<<

@Override

public int hashCode() {

// System.out.println("調用了hashcode方法");

// return super.hashCode();

return 100;

}

@Override

public boolean equals(Object obj) {

// System.out.println("調用了equals方法");

// return super.equals(obj);

// return true;

Student stu = (Student)obj;

if(this.id==stu.id&&this.name.equals(stu.name)){

return true;

}else{

return false;

}

}

//排序規則

@Override

public int compareTo(Student stu) {

// return this.id-stu.id;//按照id的升序

// return stu.id-this.id;//按照id的降序

// return this.name.compareTo(stu.name);//按照name的升序

return stu.name.compareTo(this.name);

}

}

上面是Set集的回顧(都實現Collection接口)

===================================================================================

下面是Map映射知識點回顧

===================================================================================

/Map:映射關系 ? 存放的是鍵值對key-value

Map,存放元素是put();方法

1.HashMap:不是線程安全的 ? key和value都可以為null(但key只能有一個null值,value可以多個)

例如 HashMap map = new HashMap();

map.put("", "");

map.put(null, null);//put()是放入元素

System.out.println(map);

2。Hashtable:1、線程安全的 ?古老集合 ?2、key和value都不能為null;獲得value值:Object temp = map.get(23);//根據key獲得value:-------->get(key);

例如: ? map.put("sa", "abc");

map.put(23, 34);

map.put(34, "cdf");

map.put(new Object(), "value");

注意map.put(null, "as");//key不能為null

map.put("aa", null);//value也不能為null

Hashtable遍歷:

Set sets = map.keySet();//返回所有的key ?Map中的key是以Set形式存放的,獲得所有KEY

Iterator it = sets.iterator();

while(it.hasNext()){

temp = it.next();//將key循環遍歷出來

Object value = map.get(temp);//然后根據Key來遍歷出value的值

System.out.println(value);

}

System.out.println(map);

3.TreeMap:?key具有排序功能 ? ?key不能為null value可以為null

//若key是數值 ?按照數值大小的升序

/*map.put(1001, "value");

map.put(1000, "lue");

map.put(1002, "alue");*/

//若key是字符串,按照字母的字典順序

/*map.put("bb", 23);

map.put("aa", 123);

map.put("cc", 3323);*/規則和TreeSet差不多,同樣只能存放一種類型,只不過TreeMap是一種類型的key。

//若key是自定義的對象,該對象所在的類實現Comparable接口

// Student stu1 = new Student(1003,"zhangsan");

// Student stu2 = new Student(1000,"lisi");

// Student stu3 = new Student(1001,"wangwu");

// map.put(stu1, 123);

// map.put(stu2, 23);

// map.put(stu3, 323);

//

// Set sets = map.keySet();

// Iterator it = sets.iterator();

// while(it.hasNext()){

// Student stu = it.next();

// System.out.println(stu.getId()+"\t"+stu.getName()+"\t"+map.get(stu));

// }

// System.out.println(map);

// map.put(null, "");//key不能為null

map.put("aa", null);

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

【有不對的地方,多多批正

總結

以上是生活随笔為你收集整理的java集合基础_java常用集合基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 你懂的网址在线 | 欧美精品一区三区 | 可以直接看的毛片 | 国产在线拍揄自揄拍无码视频 | 日本熟妇毛茸茸丰满 | xxxx日韩| 精品亚洲永久免费精品 | 国产精品美女网站 | jizz中国少妇高潮出水 | 欧美日韩亚洲综合 | 久久久久国产精品视频 | 国产麻豆天美果冻无码视频 | 亚洲国产精品第一页 | 伊人逼逼 | 啪啪亚洲| 黑人巨大精品欧美一区免费视频 | 亚洲欧美激情精品一区二区 | 国产一区二区三区精品在线 | 中国三级视频 | 5d肉蒲团之性战奶水 | av亚洲在线观看 | 美女网站免费观看视频 | 欧美一区二区三区国产 | 久久久天天 | 亲嘴扒胸摸屁股免费视频日本网站 | 亚洲女人天堂色在线7777 | 久久久成人网 | 国产精品国产精品国产专区蜜臀ah | 久久久久久久久97 | 91亚洲精品乱码久久久久久蜜桃 | 成年人黄色小视频 | 日韩伦理av| 午夜精品偷拍 | yw视频在线观看 | 欧美老肥婆性猛交视频 | 国产视频一区在线 | 久久亚洲一区 | 一卡二卡三卡在线视频 | 成人免费自拍视频 | 91成年人视频 | 国产ts人妖系列高潮 | www.97色 | 免费国产黄色网址 | 亚洲另类天堂 | 日本三级中文 | 夜色成人 | 亚洲va天堂va国产va久 | 男人的天堂一级片 | 午夜私人福利 | 国产91在线视频 | 处破女av一区二区 | 国产三级做爰高清在线 | 一边顶弄一边接吻 | 成人免费视频国产 | 国产成人一区二区三区电影 | 久久成人a毛片免费观看网站 | 在线黄色免费 | 国产 欧美 日韩 | 91精品色 | 视频一区在线播放 | 最近最新mv字幕观看 | 国产小视频免费观看 | 国产丰满大乳奶水在线视频 | 波多野结衣久久精品 | 一卡二卡三卡四卡五卡 | 久久一级免费视频 | 国产91专区| 91快射 | 色婷亚洲 | 插少妇视频 | 精品少妇一区二区三区密爱 | 国产又爽又猛又粗的视频a片 | 99国产精品视频免费观看一公开 | 亚洲一卡一卡 | 97视频在线观看免费高清完整版在线观看 | 午夜一级片 | 国产日产欧洲无码视频 | 中文一区二区在线 | 免费黄色网址视频 | 光棍影院av| 日韩精品一区二区三区高清免费 | 免费视频精品 | 色综合日韩 | www.亚洲综合 | 欧美美女性视频 | 清清草免费视频 | 日韩乱码一区二区三区 | 久久视频在线 | 日韩免费毛片 | 白嫩日本少妇做爰 | 欧美在线三区 | 欧美成人三级伦在线观看 | 欧美一区在线看 | 91激情| 波多野结衣绝顶大高潮 | 成人a毛片| 色多多视频在线观看 | 久草综合在线观看 | 日韩中文字幕综合 |