Rumah pangkalan data Redis redis中set和list区别有哪些

redis中set和list区别有哪些

Jun 29, 2019 pm 05:38 PM

redis中set和list区别有哪些

list和set的区别:

1、List和Set都是接口继承于Collection接口。

2、最大的不同就是List是可以重复的。而Set是不能重复的。(注意:元素虽然无放入顺序,但是元素在set 中的位置是有该元素的3、HashCode决定的,其位置其实是固定的) 

3、List接口有三个实现类:LinkedList,ArrayList,Vector ,Set接口有两个实现类:HashSet(底层由HashMap实现),LinkedHashSet

4、List适合经常追加数据,插入,删除数据。但随机取数效率比较低。

5、Set适合经常地随机储存,插入,删除。但是在遍历时效率比较低。

Set对每个对象只接受一次,并使用自己内部的排序方法(通常,你只关心某个元素是否属于Set,而不关心它的顺序--否则应该使用List)。Map同样对每个元素保存一份,但这是基于"键"的,Map也有内置的排序,因而不关心元素添加的顺序。如果添加元素的顺序对你很重要,应该使用 LinkedHashSet或者LinkedHashMap.

总结:List有顺序有重复没有排序,set无重复有排序,map的key也和set一样。如果想跟List一样需要有插入元素的顺序,请使用LinkedHashSet或者LinkedHashMap。

List的功能方法

实际上有两种List: 一种是基本的ArrayList,其优点在于随机访问元素,另一种是更强大的LinkedList,它并不是为快速随机访问设计的,而是具有一套更通用的方法。

List : 次序是List最重要的特点:它保证维护元素特定的顺序。List为Collection添加了许多方法,使得能够向List中间插入与移除元素(这只推荐LinkedList使用。)一个List可以生成ListIterator,使用它可以从两个方向遍历List,也可以从List中间插入和移除元素。

ArrayList : 由数组实现的List。允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢。ListIterator只应该用来由后向前遍历ArrayList,而不是用来插入和移除元素。因为那比LinkedList开销要大很多。

LinkedList : 对顺序访问进行了优化,向List中间插入与删除的开销并不大。随机访问则相对较慢。(使用ArrayList代替。)还具有下列方法:addFirst(), addLast(), getFirst(), getLast(), removeFirst() 和 removeLast(), 这些方法 (没有在任何接口或基类中定义过)使得LinkedList可以当作堆栈、队列和双向队列使用。

For example:

ArrayList与迭代器的使用

                List<Integer> list = new ArrayList<>();
		for (int i = 0; i < 10; i++) {
			list.add(i);
		}
		Iterator<Integer> iterator = list.iterator();
		while (iterator.hasNext()) {
			int i = iterator.next();
			System.out.println("iterator==" + i);
		}
		for(Integer i: list) {
			System.out.println("i=="+ i);
		}
                ListIterator<Integer> listIterator = list.listIterator();
		while (listIterator.hasNext()) {
			int  j = listIterator.next();
			System.err.println("listIterator==" + j);
		}
Salin selepas log masuk

Set的功能方法

Set : 存入Set的每个元素都必须是唯一的,因为Set不保存重复元素。加入Set的元素必须定义equals()方法以确保对象的唯一性。Set与Collection有完全一样的接口。Set接口不保证维护元素的次序。

HashSet : 为快速查找设计的Set。存入HashSet的对象必须定义hashCode()。

TreeSet : 保存次序的Set, 底层为树结构。使用它可以从Set中提取有序的序列。

LinkedHashSet : 具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序)。于是在使用迭代器遍历Set时,结果会按元素插入的次序显示。

更多Redis相关知识,请访问Redis使用教程栏目!

Atas ialah kandungan terperinci redis中set和list区别有哪些. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana saya memilih kunci shard di redis cluster? Bagaimana saya memilih kunci shard di redis cluster? Mar 17, 2025 pm 06:55 PM

Artikel ini membincangkan memilih kekunci shard dalam redis cluster, menekankan kesannya terhadap prestasi, skalabilitas, dan pengagihan data. Isu -isu utama termasuk memastikan pengagihan data walaupun selaras dengan corak akses, dan mengelakkan kesilapan biasa l

Bagaimana saya melaksanakan pengesahan dan kebenaran di Redis? Bagaimana saya melaksanakan pengesahan dan kebenaran di Redis? Mar 17, 2025 pm 06:57 PM

Artikel ini membincangkan pelaksanaan pengesahan dan kebenaran di REDIS, memberi tumpuan kepada membolehkan pengesahan, menggunakan ACL, dan amalan terbaik untuk mendapatkan REDIS. Ia juga meliputi menguruskan kebenaran pengguna dan alat untuk meningkatkan keselamatan Redis.

Bagaimana saya menggunakan redis untuk beratur pekerjaan dan pemprosesan latar belakang? Bagaimana saya menggunakan redis untuk beratur pekerjaan dan pemprosesan latar belakang? Mar 17, 2025 pm 06:51 PM

Artikel ini membincangkan menggunakan REDIS untuk beratur pekerjaan dan pemprosesan latar belakang, perincian persediaan, definisi pekerjaan, dan pelaksanaan. Ia meliputi amalan terbaik seperti operasi atom dan keutamaan kerja, dan menerangkan bagaimana REDI meningkatkan kecekapan pemprosesan.

Bagaimana saya melaksanakan strategi pembatalan cache di Redis? Bagaimana saya melaksanakan strategi pembatalan cache di Redis? Mar 17, 2025 pm 06:46 PM

Artikel ini membincangkan strategi untuk melaksanakan dan menguruskan pembatalan cache di Redis, termasuk tamat tempoh masa, kaedah yang didorong oleh peristiwa, dan versi. Ia juga meliputi amalan terbaik untuk tamat tempoh cache dan alat untuk pemantauan dan automat

Bagaimana saya memantau prestasi cluster redis? Bagaimana saya memantau prestasi cluster redis? Mar 17, 2025 pm 06:56 PM

Artikel membincangkan pemantauan prestasi kluster Redis dan kesihatan menggunakan alat seperti Redis CLI, Redis Insight, dan penyelesaian pihak ketiga seperti Datadog dan Prometheus.

Bagaimana saya menggunakan Redis untuk pemesejan pub/sub? Bagaimana saya menggunakan Redis untuk pemesejan pub/sub? Mar 17, 2025 pm 06:48 PM

Artikel ini menerangkan cara menggunakan REDIS untuk pemesejan pub/sub, meliputi persediaan, amalan terbaik, memastikan kebolehpercayaan mesej, dan prestasi pemantauan.

Bagaimana saya menggunakan Redis untuk pengurusan sesi dalam aplikasi web? Bagaimana saya menggunakan Redis untuk pengurusan sesi dalam aplikasi web? Mar 17, 2025 pm 06:47 PM

Artikel ini membincangkan menggunakan REDIS untuk pengurusan sesi dalam aplikasi web, memperincikan persediaan, faedah seperti skalabilitas dan prestasi, dan langkah -langkah keselamatan.

Bagaimanakah saya mendapat redis terhadap kelemahan biasa? Bagaimanakah saya mendapat redis terhadap kelemahan biasa? Mar 17, 2025 pm 06:57 PM

Artikel membincangkan mendapatkan REDIS terhadap kelemahan, memberi tumpuan kepada kata laluan yang kuat, mengikat rangkaian, melumpuhkan arahan, pengesahan, penyulitan, kemas kini, dan pemantauan.

See all articles