2019-11-01-22:09:09
ディレクトリ
1. コレクションのコンセプトコレクション
2. 一般的な方法のコレクションセット
3. イテレータイテレータ
4. のための強化
5. コレクション一般的なツール
コレクションコレクションのコンセプト
●セット:ジャワに設けられ、収集容器、複数のデータを格納するために使用することができます。
コレクションと配列がコンテナであるので、彼らはあるので、それはどのような違いを作るのですか?
●配列の長さが固定されています。コレクションの長さは可変です。
●アレイに記憶されている同じである - 要素のタイプは、基本データ型の値を格納することができます。オブジェクトのコレクションが格納されています。そして、オブジェクトの型は一致しないことがあります。オブジェクトは、一般的に多くの時間があるときは、コレクションが開発に保存されます。
一般的な方法のコレクションセット
。1 パッケージdemosummary.collection;
2 / *
3。 パブリックブールの追加(E E):現在のコレクションに指定されたオブジェクト。
。4 ます。public voidクリア():クリアコレクション内のすべての要素。
。5 パブリックブールの削除(EE);現在のコレクション内の指定されたオブジェクトを削除します。
6 現在のコレクションが指定されたオブジェクトを含むかどうかを決定することと、パブリックブールザは、(E E)を含有します。
7 パブリックブールのisEmpty():これはセットが空であるか否かを判断します。
8 公共int型のサイズは()セット内の要素の数を返します。
9 公衆オブジェクト[]のtoArray():配列に格納された要素の集合。
10 * /
11 インポートjava.util.ArrayListのの、
12である インポートのjava.util.Collection、
13は
14 公共 クラスCollectionTest {
15 パブリック 静的 ボイドメイン(文字列[]引数){
16
17。 コレクションの<string> STR = 新しい新規のArrayList <> ();
18は、 / *
19。 パブリックブール追加(E E):現在のコレクションに指定されたオブジェクト
20 * /
21である ブール B = str.add( "ジョン・ドウ" ;)
22である // のSystem.out.println(B); // trueに
23である ( "ジョン・ドウ" str.add );
24 str.add(「ワング・ウ" );
25 str.add("金6 " );
26 str.add("趙7 " );
27 // System.out.println(STR); // [ジョン・ドウ、王ウー、銭6または7趙]
28 / *
29 パブリックブールの削除(EE);指定されたオブジェクトは、現在のコレクション内で削除された
30 * /
31で
32 // ブールstr.removeのB1 =( "ジョン・ドウ");
33である // のSystem.out.println(B1); //はtrueに
34である // のSystem.out.println(STR); // [張、王ウー、銭6つ、7つ趙]
35
36 / *
37 [ パブリックブール(E E)を含有する、現在のコレクションを分析して指定されたオブジェクト含ま
38である * /
39 ブール B2 = str.contains(「サン8」)。
40 ブールB3 =のstr.contains( "趙7" );
41がある のSystem.out.println(B2); // falseに
42ある のSystem.out.println(B3); // 真に
43で
44です * /
45 パブリックブールのisEmpty():分析現在のコレクションは空です。
46は * /
47
48 ブール B4 = str.isEmpty();
49 のSystem.out.println(B4); // falseに
50
51である * /
52である )(公衆INTサイズ:セット内の要素の数を返す
53である * /
54である INT = B5 str.size();
55 のSystem.out.println(B5)。// 5
56は、
57である * /
58 パブリック・オブジェクトは[]のtoArray():配列に格納された要素の集合
59 * /
60 オブジェクト[] OBJ = str.toArray();
61である のSystem.out.println(OBJ [ 0]); // 座席
62がある ため(オブジェクトO:OBJ){
63である のSystem.out.println(O);
64 }
65
66 / *
67 )公共ボイドクリア(:のセット内のすべてクリア要素
68 * /
69 str.clear();
70 のSystem.out.println(STR); // []
71である }
72 }
イテレータイテレータ
Iteratorインターフェイス
在程序开发中.经常需要遍历集合中的所有元素。针对这种需求, JDK专门提供了一个接口java.util. Iterator。Iterator 接口也是Java集合中的一员,但它与collection、Map 接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历) Collection中的元素,因此Iterator对象也被称为迭代器。
迭代:
即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续再判断,如果还有就再取出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。
Iterator接口的常用方法
public E next() :返回迭代的下一个元素。
public boolean hasNext() :如果仍有元素可以迭代,则返回true.
1 package demosummary.collection;
2
3 import java.util.ArrayList;
4 import java.util.Collection;
5 import java.util.Iterator;
6
7 public class IteratorTest {
8 public static void main(String[] args) {
9 //创建一个集合
10 Collection<String> obj = new ArrayList<>();
11 //往集合中添加元素
12 obj.add("德玛");
13 obj.add("皇子");
14 obj.add("德邦");
15 obj.add("剑圣");
16 //使用多态方式来创建实现类对象
17 Iterator<String> iter = obj.iterator();
18 //使用while循环来迭代集合
19 while (iter.hasNext()){
20 String next = iter.next();//使用迭代器原理
21 System.out.println(next);
22 }
23 }
24 }
增强for
增强for循环:底层使用的也是迭代器,使用for循环的格式,简化了迭代器的书写是JDK1.5之后出现的新特性
collection<E>extends Iterable<E>:所有的单列集合都可以使用增强for
public interface Iterable<T>实现这个接口允许对象成为 "foreach"语句的目标。
增强for循环:用来遍历集合和数组
格式:
for(集合/数组的数据类型变量名:集合名/数组名){
sout(变量名);
}
1 package demosummary.collection;
2
3 import java.util.ArrayList;
4 import java.util.Collection;
5 import java.util.Iterator;
6
7 public class IteratorTest {
8 public static void main(String[] args) {
9 //创建一个集合
10 Collection<String> obj = new ArrayList<>();
11 //往集合中添加元素
12 obj.add("德玛");
13 obj.add("皇子");
14 obj.add("德邦");
15 obj.add("剑圣");
16 //使用多态方式来创建实现类对象
17 Iterator<String> iter = obj.iterator();
18 //增强for
19 for (String str : obj) {
20 System.out.println(str);
21 }
22 }
23 }
Collection常用工具类
java.utils.collections 是集合工具类,用来对集合进行操作。部分方法如下:
public static <T> boolean addAll(Collection<T> C,T... elements) :往集合中添加一些元素。
public static vold shuffle(List<?> 1list) :打乱顺序:打乱集合顺序。
1 package demosummary.collection;
2
3 import java.util.ArrayList;
4 import java.util.Collection;
5 import java.util.Collections;
6
7 /*
8 public static <T> boolean addAll(Collection<T> C,T... elements) :往集合中添加一些元素。
9 public static void shuffle(List<?> 1list) :打乱顺序:打乱集合顺序。
10 public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。
11 public static <T> void sort(List<T> ist, Comparator<? super T> ) :将集合中元素按照指定规则排序。
12 */
13 public class CollectionTools {
14 public static void main(String[] args) {
15 ArrayList<String> obj = new ArrayList<>();
16 //一开始学的添加元素的方法
17 // obj.add("德玛");
18 // obj.add("皇子");
19 // obj.add("德邦");
20 // obj.add("剑圣");
21
22 /*
23 public static <T> boolean addAll(Collection<T> C,T... elements) :往集合中添加一些元素。
24 */
25
26 //用collection的方法来添加元素
27 Collections.addAll(obj,"德玛","皇子","德邦","剑圣");
28 System.out.println(obj);//[德玛, 皇子, 德邦, 剑圣]
29
30 /*
31 public static void shuffle(List<?> 1list) :打乱顺序:打乱集合顺序。
32 */
33 Collections.shuffle(obj);
34 System.out.println(obj);//[皇子, 德玛, 德邦, 剑圣]
35
36 }
37 }
public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。
public static <T> void sort(List<T> ist, Comparator<? super T> ) :将集合中元素按照指定规则排序。
1 package demosummary.collection;
2
3 import java.util.ArrayList;
4 import java.util.Collections;
5 import java.util.Comparator;
6
7 public class CollectionTools02 {
8 public static void main(String[] args) {
9 //创建一个集合对象
10 ArrayList<Integer> obj = new ArrayList<>();
11 //使用collection方法添加元素
12 Collections.addAll(obj,4,3,2,1);
13 // public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。
14 //默认是升序
15 Collections.sort(obj);
16 System.out.println(obj);//[1, 2, 3, 4]
17
18 /*
19 public static <T> void sort(List<T> ist, Comparator<? super T> ) :将集合中元素按照指定规则排序。
20 */
21 //创建一个集合对象
22 ArrayList<Person> obj01 = new ArrayList<>();
23 //往集合添加元素
24 obj01.add(new Person("德玛",18));
25 obj01.add(new Person("皇子",19));
26 obj01.add(new Person("德邦",20));
27 obj01.add(new Person("剑圣",18));
28 //输出原来集合的排序
29 System.out.println(obj01);
30 //使用collection的方法按照指定规则排序
31 Collections.sort(obj01, new Comparator<Person>() {
32 @Override
33 public int compare(Person o1, Person o2) {
34 //按照大小来排序
35 int result = o1.getAge()-o2.getAge();
36 if (result==0){
37 result=o1.getName().charAt(0)-o2.getName().charAt(0);
38 }
39 return result;
40 }
41 });
42 System.out.println(obj01);
43 }
44 }