目次
① 収集フレームワークを学ぶとは、コンテナのデータ構造(追加、削除、変更、クエリ)を理解することです
Linkedlist: リンク リストの機能: 遅いクエリ変更、素早い追加と削除
Arraylist: 配列の機能: 高速なクエリ変更、低速な追加と削除
6. コレクション フレームワーク ArrayList 内の繰り返し要素の重複排除とその基礎となる原理
1.UML
①コレクションクラス図
②オフライン教育プラットフォームのユースケース図
2. リスト収集機能
① 収集フレームワークを学ぶとは、コンテナのデータ構造(追加、削除、変更、クエリ)を理解することです
② 秩序性と再現性
public class Demo1 { public static void main(String[] args) { //コレクション自体がコンテナ であり 、格納されている要素を追加、削除、変更、確認できるのがコンテナの特徴 List list = new ArrayList<>(); // 追加 list.add ("a"); list.add ("b"); list.add ("c") ; .set ( 1, "y"); System.out.println("コンテナ要素の変更 後、現在の要素コンテナ内: "+list ); // list.remove (0); list.remove ("a"); System.out を削除します。println("コンテナ要素が削除された後、現在のコレクション コンテナ内の要素: "+list); //View
System.out.println("最初のコンテナ要素を取得します: "+list.get (0) );
}
3. トラバース法
①foreach
② イテレータ イテレータ
③用
public static void main(String[] args) { リスト list = new ArrayList<>(); //增加 list.add("a"); list.add("b"); list.add("c");① foreach
for (オブジェクト object : list) { System.out.println(object); ② iterator 迭代器
Iterator it = list.iterator();
while(it.hasNext () ) { System.out.println(it.next()); } ③ for
for (int i = 0; i < list.size() ; i++) { System.out.println(list.get(i)); } }
4.リンクリスト
① ArrayList と比較してデータ構造が異なる
Linkedlist :リンク リストの機能: 遅いクエリと変更、素早い追加と削除
Arraylist :配列の 機能: 高速なクエリと変更、低速な追加と削除
②スタックキュー
/**
* linkedListでスタックコンテナを完成させる
* 1.linkedListのAPIメソッドを確認する
* 2.スタック/キューのデータ構造特性を確認する
* @author PC
*
*/
public class Demo2 { public static void main(String[] args) { LinkedList ll = new LinkedList<>(); ll.add("a"); ll.add("b"); ll.add("c"); DuiZhan dz = new DuiZ han(ll); // メソッドを定義します。このメソッドが呼び出されると、後で格納された要素が最初に出力され、最初に格納された要素が後で出力されます。 System.out.println( dz.pop() ); System.out.println(dz.pop()); System.out.println( dz.pop ( ) ) ; }
}
クラスDuiZhan{ プライベートLinkedList ll;
public DuiZhan(LinkedList ll) { super(); this.ll = ll; } //压栈 弹栈 public Object Pop () { return ll.removeLast (); } }
5. 成長因子の議論
/**
* linkedList Tuning
*要素をコレクションに格納する処理
* ArrayList
*配列の長さは不変
*
* 1. データ構造が配列であることを証明する
* 2. 配列の長さは不変だが、コレクションのリストの長さは可変である理由 * * 成長率 (一度にどれだけ
拡張
するか) 0.5 倍 拡張 1.5 倍 1+0.5 * @author
PC
*
*/
public class Demo3 { public static void main(String [] args) throws NoS uchFieldException、SecurityException、IllegalArgumentException、IllegalAccessException { ArrayList al = new ArrayList <>(50) ; for (int i = 0; i < 100; i++) { al.add(i); System.out.println(i+"\r");
getCurrentArrLength(al);
}
}//ArrayList al オブジェクトの基になる配列の長さを取得します
private static void getCurrentArrLength(ArrayList al) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException { Field f = al.getClass(). getDeclaredField ("elementData"); f.setible( true); Object[] Object = (java.lang.Object[]) f.get( al); System.out.println("現在のコレクションの基になる配列のコンテナ長"+Object.length); }
6. コレクション フレームワーク ArrayList 内の繰り返し要素の重複排除とその基礎となる原理
/**
*基になるオブジェクトと等しいリストの重複排除の原則
* @author PC
*
*/
public class Demo4 { public static void main2(String[] args) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException { List list = new ArrayList<>(); list.add(" a"); list.add("b"); list.add("c"); System.out.print ln ("現在のコレクション コンテナ内"+list); //重複排除 if(!list.contains("b")) { list.add ("b"); } System.out.println("現在のコレクション コンテナ内"+list); }
public static void main(String[] args) throws NoSuchFieldException、SecurityException、IllegalArgumentException、IllegalAccessException { List list = new ArrayList<>(); list.add(new Student(1,"zs")); list.add(new Student(2,"ls")); list.add(new Student(3,"lx")); System.out.println("前の集合容器中の"+list); //去重 if(!list.contains(new Student(3,"lx"))) { list.add(new Student(3,"lx")); システム.アウト 。
public int getId() { ID を返します。 public void setId(int id) { this.id = id; } public String getName() { 名前を返します。 public void setName(String name) { this.name = 名前; } public Student() { // TODO 自動生成されたコンストラクタ スタブ } public Student(int id, String name) { super(); this.id = ID; this.name = 名前; @Override public String toString ( ) {
return "学生 [id=" + id + ", name=" + name + "]";
}
@Override
public booleanquals (Object obj) { System.out.println("被调了。。。"); if (this == obj) は true を返します。 if (obj == null) は false を返します。 if (getClass() != obj.getClass()) は false を返します。 学生その他 = (学生) obj; if (id != other.id) は false を返します。 if (name == null) { if (other.name != null) は false を返します。 else if (!name.equals(other.name))
false を返します。
true を返します。
}