集合 MySet方法实现增删改查

1、定义一个类,类里面有一个属性col,类型是集合类型Collection,实现下列方法:可以向col里面添加数据、修改数据、查询数据、删除数据。也就是把

这个col当作一个数据存储的容器,对其实现数据的增删改查的方法。


package cn.hncu.MySet3;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class CollectionSet<E> {
	private Collection<E> col=new ArrayList<E>();
	public boolean add(E e){
		return col.add(e);
	}
	public boolean update(E e1,E e2){//把e1改成e2
		Object objs[]=col.toArray();
		col.clear();//记得清除
		boolean flag=true;
		for(int i=0;i<objs.length;i++){
			@SuppressWarnings("unchecked")
			E e=(E) objs[i];
			if(e.equals(e1)){
				e=e2;
				flag=false;
			}
			col.add(e);
		}
		return flag;
	}
	public boolean delete(E e){
		return col.remove(e);
	}
	public Collection<E> index(E e){
		Collection<E> c=new ArrayList<E>();
		Iterator<E> it=col.iterator();
		while(it.hasNext()){
			Object obj=it.next();
			if(obj.toString().indexOf(e.toString())>=0){
				c.add(e);
			}
		}
		return c;
	}
	public Collection<E> getAll(){
		return col;
	}
}

package cn.hncu.MySet3;

import java.util.Iterator;

public class Test2 {

	public static void main(String[] args) {
		CollectionSet<String> set=new CollectionSet<String>();
		set.add("!!!");
		set.add("1");
		set.add("2");
		set.add("3");//可以重复
		set.add("3");
		set.add("3");
		set.add("3");
		set.update("1", "///\\))))");
		
		Iterator<String> it=set.getAll().iterator();//获得元素
		while(it.hasNext()){
			System.out.println(it.next());
		}
		
		System.out.println(set.index("3"));//
		Iterator<String> it2=set.index("2").iterator();//获得元素
		while(it2.hasNext()){
			System.out.println(it2.next());
		}
		
	}

}





2、把上题的Collection改成使用Map实现。

package cn.hncu.MySet3;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

public class MapSet<K,V> {
	private Map<K, V> map=new HashMap<K, V>();
	public boolean put(K key,V value){//用obj更能兼容类型,但是在这里,必须是K类型。这种也有改的功能
		map.put(key, value);
		return true;
	}
	public V delete(Object key) {
		return map.remove(key);
	}
	public Map<K, V> getAll(){
		return  map;
	}
	public Map<K, V> index(String valueStr){
		Map<K, V> m=new HashMap<K, V>();
		Iterator<Entry<K, V>> it=map.entrySet().iterator();
		while(it.hasNext()){
			Entry<K, V> entry=it.next();
			if(entry.getValue().toString().indexOf(valueStr)>=0){
				m.put(entry.getKey(), entry.getValue());
//				System.out.println("OK");
			}
		}
		return m;
	}
}


测试

package cn.hncu.MySet3;

import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;

public class Test3 {

	public static void main(String[] args) {
		MapSet<Integer, String> set=new MapSet<Integer, String>();
		set.put(1, "100");
		set.put(3, "12");
		set.put(2, "lzp");
		set.put(6, "wja");
		set.put(7, "LLL");//这种是更改
		set.put(6, "LLL");//这种是更改
		
//		Iterator<Entry<Integer, String>> it=set.getAll().entrySet().iterator();//慢慢熟悉这种格式
//		while(it.hasNext()){
//			Entry<Integer, String> entry=it.next();
//			System.out.println(entry);
//		}
		Map<Integer, String>  m=set.index("LLL");
		Iterator<Entry<Integer, String>> it2=m.entrySet().iterator();
		while(it2.hasNext()){
			Entry<Integer, String> entry2=it2.next();
			System.out.println(entry2);
		}
		
	}

}



2、把上题的Collection改成使用Map实现。
Redis 是一个高性能的键值对数据库,支持丰富的数据类型,如 String、Hash、List、Set、Sorted Set 等。以下是 Redis 中常用的增删改查操作命令及其使用场景: ### 增(插入数据) - `SET key value`:将字符串值赋给指定的键。例如:`SET name "tanhao"`。 - `HSET key field value`:为哈希表 key 中的字段 field 赋值。例如:`HSET user:1 name "tanhao"`。 - `LPUSH key value`:将值插入到列表 key 的头部。例如:`LPUSH mylist "hello"`。 - `RPUSH key value`:将值插入到列表 key 的尾部。例如:`RPUSH mylist "world"`。 - `SADD key member`:将成员 member 添加到集合 key 中。例如:`SADD myset "hello"`。 - `ZADD key score member`:将有序成员 member 添加到有序集合 key 中,按 score 排序。例如:`ZADD myzset 1 "one"`。 ### 删(删除数据) - `DEL key`:删除指定的键。例如:`DEL name`。 - `HDEL key field`:删除哈希表 key 中的字段 field。例如:`HDEL user:1 name`。 - `LREM key count value`:删除列表 key 中与 value 相等的元素。count > 0 表示从头部删除 count 个值为 value 的元素;count < 0 表示从尾部删除 |count| 个值为 value 的元素;count = 0 表示删除所有值为 value 的元素。例如:`LREM mylist 1 "hello"`。 - `SREM key member`:从集合 key 中移除成员 member。例如:`SREM myset "hello"`。 - `ZREM key member`:从有序集合 key 中移除成员 member。例如:`ZREM myzset "one"`。 ### 改(更新数据) - `SET key value`:如果键已存在,则覆盖其值。例如:`SET name "new_value"`。 - `HSET key field value`:如果字段 field 已存在,则更新其值。例如:`HSET user:1 name "new_value"`。 - `LSET key index value`:将列表 key 中指定索引 index 的值设置为 value。例如:`LSET mylist 0 "new_hello"`。 - `SADD key member`:如果成员 member 已存在,则不会重复添加;若要替换,需先删除再添加。例如:`SADD myset "new_hello"`。 - `ZADD key score member`:如果成员 member 已存在,则更新其 score 值。例如:`ZADD myzset 2 "one"`。 ### 查(查询数据) - `GET key`:获取指定键的值。例如:`GET name`。 - `HGET key field`:获取哈希表 key 中字段 field 的值。例如:`HGET user:1 name`。 - `LRANGE key start stop`:获取列表 key 中从索引 start 到 stop 的元素。例如:`LRANGE mylist 0 -1`。 - `SMEMBERS key`:获取集合 key 中的所有成员。例如:`SMEMBERS myset`。 - `ZRANGE key start stop [WITHSCORES]`:获取有序集合 key 中从索引 start 到 stop 的成员,按 score 升序排列。例如:`ZRANGE myzset 0 -1 WITHSCORES`。 ### 示例代码 以下是一个使用 Java 连接 Redis 并进行基本增删改查操作的示例代码: ```java import redis.clients.jedis.Jedis; public class RedisExample { public static void main(String[] args) { // 连接 Redis 服务器 Jedis jedis = new Jedis("localhost", 6379); System.out.println("连接成功"); System.out.println("服务正在运行: " + jedis.ping()); // 插入数据 jedis.set("name", "tanhao"); jedis.hset("user:1", "name", "tanhao"); // 查询数据 System.out.println(jedis.get("name")); System.out.println(jedis.hget("user:1", "name")); // 更新数据 jedis.set("name", "new_tanhao"); jedis.hset("user:1", "name", "new_tanhao"); // 删除数据 jedis.del("name"); jedis.hdel("user:1", "name"); // 关闭连接 jedis.close(); } } ``` 上述命令和代码示例展示了 Redis 中常见的增删改查操作,适用于不同数据类型的处理[^1]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值