Java で ArrayList とシーケンス リストを定義および実装する方法
1. 線形テーブル
定義
線形テーブルは、最も基本的かつ単純で、最も一般的に使用されるデータ構造です。同じ特性を持つ n 個のデータ要素を含む有限シーケンスは線形リストと呼ばれ、データ構造の一種です。
一般的な線形リスト: シーケンシャル リスト、リンク リスト、スタック、キュー...
線形リストは論理的に線形な構造、つまり連続した直線です。線形テーブルの物理的な記憶形式は通常、配列またはリンク リスト構造ですが、必ずしも連続的であるとは限りません。
特徴
#セット内には「最初の要素」が 1 つだけ存在する必要があります。
セットには「最後の要素」が 1 つだけ存在する必要があります。
最後の要素を除き、すべての要素には一意のサクセサ (サクセサ) があります。
最初の要素を除き、すべての要素には一意の先行要素 (先行要素) があります。
2. シーケンス テーブル
定義
通常、配列の形式で格納される線形構造はシーケンス テーブルと呼ばれ、データ要素が格納されます。連続したアドレスを持つ物理メモリセル内で順番に。アレイ上のデータの追加、削除、確認、変更を完了します。
実装
まず、データを保存する配列を作成する必要があります。
注: 便宜上、最初に整数配列を作成したため、さまざまな型に適切に適応するために、ここでは使用していない汎用配列を作成できます。 。 書きました。
ここでは、現時点で配列が空であるかどうかを考慮する必要があります。
#要素の検索
ここでは null 操作も必要です。
pos 位置の要素を取得する
配列が空で pos が不正な状況が発生する可能性があるため、判断が必要です。
ここでは手動で例外をスローしていますが、他には何も書いていません。
pos 位置の値を変更します
削除操作
特定の位置にある要素を削除しますPosition を使用すると、その背後にある要素で直接カバーして削除を実現できます。
3. ArrayList
はじめに:
コレクション フレームワークでは、ArrayList は List インターフェイスを実装する通常のクラスであり、具体的なフレームワーク図は次のとおりです:
[説明]
ArrayList は RandomAccess インターフェイスを実装しており、ArrayList がランダム アクセスをサポートしていることを示します。
ArrayList は Cloneable インターフェイスを実装し、ArrayList を複製できることを示します。
ArrayList は Serializable インターフェイスを実装し、ArrayList がシリアル化をサポートしていることを示します。
Vector とは異なり、ArrayList はスレッドセーフではなく、単一スレッドで使用できます。マルチスレッドでは、Vector または CopyOnWriteArrayList を選択できます。
ArrayList の最下層は連続空間で動的に展開可能な動的型の配列リストです。
public static void main(String[] args) {
// ArrayList创建,推荐写法
// 构造一个空的列表
List<Integer> list1 = new ArrayList<>();
// 构造一个具有10个容量的列表
List<Integer> list2 = new ArrayList<>(10);
list2.add(1);
list2.add(2);
list2.add(3);
// list2.add("hello"); // 编译失败,List<Integer>已经限定了,list2中只能存储整形元素
// list3构造好之后,与list中的元素一致
ArrayList<Integer> list3 = new ArrayList<>(list2);
// 避免省略类型,否则:任意类型的元素都可以存放,使用时将是一场灾难
List list4 = new ArrayList();
list4.add("111");
list4.add(100);
}
ログイン後にコピー
いくつかの一般的な方法public static void main(String[] args) { // ArrayList创建,推荐写法 // 构造一个空的列表 List<Integer> list1 = new ArrayList<>(); // 构造一个具有10个容量的列表 List<Integer> list2 = new ArrayList<>(10); list2.add(1); list2.add(2); list2.add(3); // list2.add("hello"); // 编译失败,List<Integer>已经限定了,list2中只能存储整形元素 // list3构造好之后,与list中的元素一致 ArrayList<Integer> list3 = new ArrayList<>(list2); // 避免省略类型,否则:任意类型的元素都可以存放,使用时将是一场灾难 List list4 = new ArrayList(); list4.add("111"); list4.add(100); }
説明 | |
End insert e | |
will e はインデックス位置に挿入されます | |
コレクション c の要素の末尾をコレクションに挿入します | |
##boolean Remove(Object o) | |
E get(intindex) | |
E set(int index, E element) | |
void clear() | |
boolean contains(Object o) | |
intindexOf(Object o) | |
#int lastIndexOf(Object o)の添え字を返します | 最後の o |
##List< E > subList(int fromIndex, int toIndex) | リストの一部のインターセプト |
ArrayList traversal | Loop traversal |
##Iterator
System.out.println("======迭代器1========="); ElementObservableListDecorator<Object> list; Iterator<String> it = list.iterator(); while (it.hasNext()) { System.out.println(it.next()); } System.out.println("======迭代器2========="); ListIterator<String> it2 = list.listIterator(); while (it2.hasNext()) { System.out.println(it2.next()); }
シーケンス テーブルは配列の容量と要素の数を厳密に区別します。
つまり、配列は実際には不完全なシーケンス リストです。シーケンス テーブルの注意:
シーケンス テーブルでは、容量と要素数 (サイズ) という 2 つの概念を区別する必要があります。 )。容量は配列のサイズ (長さ) として理解でき、要素数はサイズに記録された有効な要素の数です。
- シーケンス テーブルでは、データの格納が連続している必要があり、要素間に「隙間」があってはなりません。挿入や削除などの操作を行うと、その操作が完了した後、シーケンスリストの連続性を確認してください。
以上がJava で ArrayList とシーケンス リストを定義および実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java の乱数ジェネレーターのガイド。ここでは、Java の関数について例を挙げて説明し、2 つの異なるジェネレーターについて例を挙げて説明します。

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4
