a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 110|回复: 0

[基础知识] JAVA面向对象编程课堂笔记19

[复制链接]
发表于 2012-8-4 12:37:27 | 显示全部楼层 |阅读模式
集合(从本部分开始涉及API)  
  W$ x9 k4 S) K; q1 O集合是指一个对象容纳了多个对象,这个集合对象主要用来管理维护一系列相似的对象。  
5 Q/ b/ H9 S7 Y( \数组就是一种对象。(练习:如何编写一个数组程序,并进行遍历。)  ; o0 p) ^1 M7 [9 W0 L, A/ v2 [5 U
java.util.*定义了一系列的接口和类,告诉我们用什么类NEW出一个对象,可以进行超越数组的操作。  ) z+ G$ c3 C3 }, g* q) j+ U' E7 S
(注:JAVA1.5对JAVA1.4的最大改进就是增加了对范型的支持)  
* f- E! g4 V. d$ K" B集合框架接口的分类:(分collection接口 和 map接口)  
5 h$ f7 Q% N* |( Q% k# W& y" X; q
  f7 o; X% o7 \0 U4 w0 ^                    Collection接口                         Map接口
8 Z0 d, g: q: R& p' `4 \# o3 E  
' }: X7 T+ g- W9 M* }   
9 v5 d+ B( i( F! _$ i/ o6 V( T# V7 h; X8 R! t
               List接口         Set接口                        SortedMap接口
/ K, H# _- ]$ o" |8 T" |/ e4 W  0 v, e, n; |5 N+ ~& v& X- R

! _0 e: R/ M" ^: c+ X! j8 `: n! D7 o' O: Y
                                   SortedSet接口
! Q8 K( n. }# }" Q$ R) h. tJAVA中所有与集合有关的实现类都是这六个接口的实现类。  
+ s* t; B/ ^" a5 D   + q# D) \, S, c
Collection接口:集合中每一个元素为一个对象,这个接口将这些对象组织在一起,形成一维结构。  
6 o( {- I6 ?3 D4 c   
$ P! q0 ]) |- q% mList接口代表按照元素一定的相关顺序来组织(在这个序列中顺序是主要的),List接口中数据可重复。  
5 Q6 v4 s+ m5 g# G   " ~" _5 {3 A; o& n! u9 t
Set接口是数学中集合的概念:其元素无序,且不可重复。(正好与List对应)  
, r+ r6 \! C; _' O; W   
  E0 S  r! D( I. ?- e; y4 Y9 j6 DSortedSet会按照数字将元素排列,为“可排序集合”。  2 L! J! b9 j' b' @" s
   
5 y8 b; T% y7 w% r9 \# ]/ N+ J7 r& XMap接口中每一个元素不是一个对象,而是一个键对象和值对象组成的键值对(Key-Value)。    Q  w1 O7 Y# J' f
Key-Value是用一个不可重复的key集合对应可重复的value集合。(典型的例子是字典:通过页码的key值找字的value值)。  6 m3 @& P0 R9 \! ~1 V
例子:  # ~6 c- ^2 M4 V
key1—value1;  - t  {7 k0 Y2 s/ a/ z3 J
key2—value2;  
# {7 _% ~# K! S! ]! \. fkey3—value3.  
, q, X/ E$ s8 ], e8 b5 A" ?0 b7 q# P; F3 xSortedMap:如果一个Map可以根据key值排序,则称其为SortedMap。(如字典)  
- [7 z2 G; j7 o- I# ?!!注意数组和集合的区别:数组中只能存简单数据类型。Collection接口和Map接口只能存对象。  
, B0 m0 A/ c/ ?3 @   
2 }# l* Q! ^. B/ |以下介绍接口:  3 o. e% G: N/ Q7 C/ U% w) q& P
List接口:(介绍其下的两个实现类:ArrayList和LinkedList)  
0 J% ~6 y9 {3 t! @# L, r: lArrayList和数组非常类似,其底层①也用数组组织数据,ArrayList是动态可变数组。  
" e% t( C4 E4 C# v, O0 \' }8 s①    底层:指存储格式。说明ArrayList对象都是存在于数组中。  
; M/ z$ F  o: f% G9 d注:数组和集合都是从下标0开始。  8 z8 ?9 h8 E. B1 M! ?3 A5 L
ArrayList有一个add(Object o)方法用于插入数组。  8 P+ `, ~" ]' t6 k5 h
ArrayList的使用:(完成这个程序)  * g$ ^; @3 C* @9 G$ n* o9 A# ?6 {
先import  java.util.*;  4 a) j1 C( K+ L, U* N2 h. @1 e/ Q
用ArrayList在一个数组中添加数据,并遍历。  
4 e8 @/ S6 J3 R' D2 VArrayList中数组的顺序与添加顺序一致。  
2 e! w' }0 B; U  ~" s5 O只有List可用get和size。而Set则不可用(因其无序)。  
7 C, m# F  J) _; e9 fCollection接口都是通过Iterator()(即迭代器)来对Set和List遍历。  
3 }& h4 {' M, X通过语句:Iterator it=c.iterator(); 得到一个迭代器,将集合中所有元素顺序排列。然后可以通过interator方法进行遍历,迭代器有一个游标(指针)指向首位置。  
! e( D6 C/ _; f  l' UInterator有hasNext(),用于判断元素右边是否还有数据,返回True说明有。然后就可以调用next动作。Next()会将游标移到下一个元素,并把它所跨过的元素返回。(这样就可以对元素进行遍历)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-8 04:32 , Processed in 0.206365 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表