HashMap的集合讲解
package Map; import java.util.HashMap; import java.util.Iterator; /** * map 为接口 * @author MZFAITHDREAM * */ public class HashMapDemo1 { public static void main(String[] args) { // TODO Auto-generated method stub HashMap<String, String > map =new HashMap<String, String>(); //增加元素put(k key,v value)键值对 将指定的值增加map表中 map.put("name", "机熊机"); map.put("sex", "nan"); map.put("id", "2345689"); map.put("height", "145"); map.put("name", "即可不一"); //修改元素 map.put("name", "tee"); //删除元素 map.remove(object key):根据主键值对应元素 map.remove("id"); //打印map System.out.println(map); /* * int size() 集合的长度 */ int size=map.size(); System.out.println(size); // map.clear(); System.out.println(map); /* * 判断是否为空 */ System.out.println(map.isEmpty()); System.out.println(map); } }
package Map; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.Set; public class HashMapDemo2 { private static Object key; public static void main(String[] args) { HashMap<String, String > map =new HashMap<String, String>(); map.put("name", "机熊"); map.put("sex", "nan"); map.put("id", "2345689"); map.put("height", "145cm"); map.put("weight", "78kg"); map.put("QQ", "6789875643"); map.put("手机号", "15678964578"); map.put("微信", "ASD23478965"); map.put("name", "即可不要"); //修改元素 map.put("weight", "100kg"); // 1根据可以获取value值 String value =map.get("name"); System.out.println(value); // 2获取map表中所有的key,set keySet() Set<String> set =map.keySet(); // 3打印map表中有key /* for (String key : set) { System.out.println(map); System.out.println(key+":"+map.get(key)); } */ // 4获取map表中第一种 System.out.println("================================================="); Collection<String> Values =map.values(); for (String v : Values) { System.out.println(v); } } }
package Map; import java.util.*; public class HashMapDemo3 { public static void main(String[] args) { HashMap<String, String > map =new HashMap<String, String>(); map.put("name", "机熊"); map.put("sex", "nan"); map.put("id", "2345689"); map.put("height", "145"); map.put("age", "1003"); /** * 方式一 */ Set<String> set =map.keySet(); //打印map表中有key for (String key : set) { System.out.println(map); System.out.println(key+":"+map.get(key)); } } } //遍历方式二 /** * 1:将map表中的数据放到一个集合当中 * Set<Entry<k,v> > entrySet:获取所有集合键值对对象集合 */ //} //Set<Map.Entry<String,String>> enterySet = map.entrySet(); /* for(Map.Entry<String,String> en:entrySet) { System.out.println(en); System.out.println(en.getKey()); System.out.println(en.getValue()); } }
package Map; import java.util.*; public class HashMapDemo4 { private static final String HashMap = null; public static void main(String[] args) { HashMap<String, String > hmap =new HashMap<String, String>(); hmap.put("name", "机熊"); hmap.put("sex", "nan"); hmap.put("id", "2345689"); hmap.put("height", "145"); hmap.put("age", "1003"); //第一种方法keyset for(String key:hmap.keySet()) { System.out.println(key+"-----"+hmap.get(key)); } System.out.println("====================================="); //第二种方法 for(Map.Entry<String,String> entry:hmap.entrySet()) { System.out.println(entry); } System.out.println("========/*/**/"); for(String key :hmap.keySet()) { System.out.println("key===="+key); } System.out.println("///"); for(String value :hmap.values()) { System.out.println("value===="+value); } System.out.println("333333333333333"); //keyset Iterator<String> iterator=hmap.keySet().iterator(); while(iterator.hasNext()) { String key=iterator.next(); System.out.println(key+" : "+hmap.get(key)); } //entryset Iterator<Map.Entry<String ,String>> iterator1=hmap.entrySet().iterator(); while(iterator.hasNext()) { Map.Entry<String, String>entry= iterator1.next(); System.out.println(entry.getKey()); } } }
Redis缓存技术 概念
打开redis-server会出现这个页面
打开redis-server会出现这个页面
redis-cli打开这个命令进行代码编译。
String 类型 127.0.0.1:6379> setage 20 (error) ERR unknown command 'setage' 127.0.0.1:6379> set age 20 OK 127.0.0.1:6379> get age "20" 127.0.0.1:6379> Redis的数据类型(五种)《增删改查>>>>>>>>>>>>>>>>>>>>命令行操作 1 Redis的数据类型一:<String 类型的增删改查> 127.0.0.1:6379> set age 23 OK 127.0.0.1:6379> get age "23" =============增加数据类型指令============================= 127.0.0.1:6379> set name zgangsan OK ----------------获取数据类型-------------------------------- 127.0.0.1:6379> get name "zgangsan" 127.0.0.1:6379> ==============删除数据指令:del 名称......============================= 127.0.0.1:6379> del name (integer) 1 127.0.0.1:6379> get name (nil) 当关闭redis服务器时,redis数据库中的数据清空。 当redis增加数据的名称与存在的数据名称一致是,会将后面增加的数据修改前面的数据。 127.0.0.1:6379> set name lisi OK 127.0.0.1:6379> set name wangwu OK 127.0.0.1:6379> get name "wangwu" ------------------练习题---------库一-------------------------127.0.0.1:6379----------------------------------------- 127.0.0.1:6379> set bookname wodeshijie OK 127.0.0.1:6379> get bookname "wodeshijie" 127.0.0.1:6379> set booknum 45 OK 127.0.0.1:6379> get booknum "45" 127.0.0.1:6379> getbook prick (error) ERR unknown command 'getbook' 127.0.0.1:6379> set bookprick 34$ OK 127.0.0.1:6379> get bookprick "34$" 127.0.0.1:6379> set bbookautor wangxuaiok OK 127.0.0.1:6379> get bbookautor "wangxuaiok" 127.0.0.1:6379> del bookname (integer) 1 127.0.0.1:6379> set booknum 123 OK 127.0.0.1:6379> get booknum "123" 127.0.0.1:6379>
2 Redis的数据类型一:<Hash类型数据的增删改查> Hash-----------hash设置值------------ 127.0.0.1:6379> hset student name wangxiaoer (integer) 1 127.0.0.1:6379> hset student age 34 (integer) 1 127.0.0.1:6379> hset student sex nana (integer) 1 127.0.0.1:6379> hset student like wangzhe (integer) 1 127.0.0.1:6379> hset student phone 1234567 (integer) 1 127.0.0.1:6379> hset student address chian (integer) 1 -----------------------------hash查询名称--------------------------------- (integer) 1 127.0.0.1:6379> hget studnet name (nil) 127.0.0.1:6379> hget student name --------------hash------获得所有数据-------------------------------------------------------- 127.0.0.1:6379> hgetall student 1) "name" 2) "wangxiaoer" 3) "age" 4) "34" 5) "sex" 6) "nana" 7) "like" 8) "wangzhe" 9) "phone" 10) "1234567" 11) "address" 12) "chian" ---------------------hash数据的删除------------------------hdel--------------------------------------------------------- 127.0.0.1:6379> hsel student sex age (error) ERR unknown command 'hsel' -------------------hdel student 名称 127.0.0.1:6379> hdel student sex age (integer) 2 127.0.0.1:6379> hgetall student 1) "name" 2) "wangxiaoer" 3) "like" 4) "wangzhe" 5) "phone" 6) "1234567" 7) "address" 8) "chian"
2 Redis的数据类型三:<List类型数据的增删改查> list的集合 -------------------------------list增加数据类型------------------从left or right------------ 127.0.0.1:6379> lpush mylist 123 abc xiaoming huji (integer) 4 127.0.0.1:6379> rpush mylist A V D G H J T (integer) 11 --------------lrange mylist 0 -1------------------------list查询数据------------- -1是最后一个in the end---------------- 127.0.0.1:6379> lrange mylist 0 -1 1) "huji" 2) "xiaoming" 3) "abc" 4) "123" 5) "A" 6) "V" 7) "D" 8) "G" 9) "H" 10) "J" 11) "T" 127.0.0.1:6379> lpush mylist A B C D E F RT TY (integer) 19 127.0.0.1:6379> lrange mylist 0 -1 1) "TY" 2) "RT" 3) "F" 4) "E" 5) "D" 6) "C" 7) "B" 8) "A" 9) "huji" 10) "xiaoming" 11) "abc" 12) "123" --------------------------------------数据可以重复 13) "A" 14) "V" 15) "D" 16) "G" 17) "H" 18) "J" 19) "T" ---------------------------------删除的指令----------lpop-----or-------- rpop ------------- 127.0.0.1:6379> lpop mylist "TY" 127.0.0.1:6379> lop mylist (error) ERR unknown command 'lop' 127.0.0.1:6379> lop mylist (error) ERR unknown command 'lop' 127.0.0.1:6379> lpop mylist "RT" 127.0.0.1:6379> rpop mylist "T" 127.0.0.1:6379> rpor mylist (error) ERR unknown command 'rpor' 127.0.0.1:6379> rpop mylist "J" 127.0.0.1:6379> lrange mylist 0 -1 1) "F" 2) "E" 3) "D" 4) "C" 5) "B" 6) "A" 7) "huji" 8) "xiaoming" 9) "abc" 10) "123" 11) "A" 12) "V" 13) "D" 14) "G" 15) "H" 总结: String set get del Hash hset hget hdel hgetall student List lpush mylist Rpush mylist lrange mylist 0 -1 Set sadd semembers
4 Redis的数据类型四:<Set类型数据的增删改查> Set集合(数据不能重复) ---------Set-------------增加数据的内容-----------sadd myset------- 127.0.0.1:6379> sadd myset 1 2 3 4 5 6 7 (integer) 7 127.0.0.1:6379> sadd 1 2 4 (integer) 2 127.0.0.1:6379> sadd myset 1 3 4 7 (integer) 0 -------------Set---------查询数据的指令-----------smembers myset------------- 127.0.0.1:6379> smembers myset 127.0.0.1:6379> srem myset2 (error) ERR wrong number of arguments for 'srem' command 127.0.0.1:6379> srem myser 2 3 (integer) 0 ---------------Set-----------删除数据指令-------------------------------- 127.0.0.1:6379> srem myset 2 3 4 (integer) 3 127.0.0.1:6379> smbembers (error) ERR unknown command 'smbembers' 127.0.0.1:6379> smbembers myset (error) ERR unknown command 'smbembers' 127.0.0.1:6379> smembers myset 1) "1" 2) "5" 3) "6" 4) "7"
5 Redis的数据类型五:<Sortedset类型数据的增删改查> -----------Sortedset-------增加数据指令----zadd 78 lisi 56 kl 90 hu-- zadd 名称 分数--------- 127.0.0.1:6379> zadd mysoet 10 liwu 34 ou 67 ji 34 hj 98 (error) ERR syntax error 127.0.0.1:6379> zadd 78 lisi 56 kl 90 hu (error) ERR syntax error 127.0.0.1:6379> zadd mysort 20 list 30 wanwu (integer) 2 -------------Sortedset--------查询----------------------------- 127.0.0.1:6379> zrange mysort 0 -1 1) "list" 2) "wanwu" --------Sortedset--------查询数据将分数查询出来---------------- 127.0.0.1:6379> zrange mysort 0 -1 withscores 1) "list" 2) "20" 3) "wanwu" 4) "30" -----------------Sortedset------删除数据内容-------------------------------------------------------- 127.0.0.1:6379> zrem mysort wanwu (integer) 1 127.0.0.1:6379> zrange mysort 0 -1 withscores 1) "list" 2) "20"
数据通用的命令符. 通用命令符一查询所有数据. 通用命令符二查询数据的类型 通用命令符三删除数据 ------通用命令符一---------查询所有数据----------------- 127.0.0.1:6379> keys * 1) "bookprick" 2) "name" 3) "student" 4) "sex" 5) "mysort" 6) "mylist" 7) "myset" 8) "booknum" 9) "1" 10) "bbookautor" 127.0.0.1:6379> keys student 1) "student" --------------------通用命令符二----------------------------查询数据的类型----------------------------------------------------------------- 127.0.0.1:6379> type name string 127.0.0.1:6379> type sex string 127.0.0.1:6379> type syudent none 127.0.0.1:6379> type student hash 127.0.0.1:6379> type mysort zset ------------------通用命令符三-----------------删除数据--------------------------------------------------------------------------------------------- 127.0.0.1:6379> del student (integer) 1 127.0.0.1:6379> hgetall student (empty list or set)
总结
第一类:
|添加数据的指令:set 名称 值
|查询数据的指令:get 名称
| 删除数据的指令:del 名称...
|当关闭redis服务器时,redis数据库中的数据将会被清空
|当给redis数据库中添加的数据的名称与已存在的数据的名称一致时,
会将后面添加的数据替换旧数据
第二类:
n添加数据的指令:hset 名称 子名称 值
n查询数据的指令:hget 名称 子名称
n查询所有数据的指令:hgetall 名称
n删除数据的指令:hdel 名称 子名称...
第三类:
u添加数据的指令:
u1.从左边添加数据:lpush 名称 值...
u2.从右边添加数据:rpush 名称 值...
u查询数据的指令:lrange 名称 开始的下标 结束的下标(-1表示到最后一个元素结束)
u删除数据的指令:
u1.从左边删除数据,并把删除的数据查询出来:lpop 名称
u2.从右边删除数据,并把删除的数据查询出来:rpop 名称
第四类:
l添加数据的指令:sadd 名称 值...
l查询所有数据的指令:smembers 名称
l删除数据的指令:srem 名称 值...
第五类:
sortedset类型:不允许添加重复的数据,而且添加的数据需要进行排序
添加数据的指令:zadd 名称 分数 值...
查询所有数据的指令:zrange 名称 开始的下标 结束的下标 [withscores]表示查询数据的时候将数据对应的分数也查询出来
删除数据的指令:zrem 名称 值...
第六类:
通用命令:
keys 名称或者*:查询redis数据库中是否存在哪些数据类型的名称
type 名称:查询当前存储的数据是属于哪一种数据类型
del 名称:删除任何一种数据类型的所有数据