「javamap监听」监听Java

博主:adminadmin 2022-12-23 03:42:06 60

今天给各位分享javamap监听的知识,其中也会对监听Java进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java里面map的问题。

看出来了吗,也就是你的map中存在null对应的value的时候就是允许。

java循环按键循环监听事件

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.Arrays;

import java.util.HashMap;

import java.util.Map;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

public class Buttoncall implements ActionListener {

private String[] a = {"1a", "2a", "3a", "4a", "5a" };

private JButton[] jbutton = new JButton[5];

private JLabel[] jlabel = new JLabel[jbutton.length];

//用于记录按钮的点击数

private Maplt;String, Integergt; countMap = new HashMaplt;String, Integergt;();

/**

* 创建一个新的实例 Buttoncall.

*/

public Buttoncall() {

// 创建窗口

JFrame j = new JFrame();

JPanel jpa = new JPanel();// 定义面板组建

/**

* 初始化按钮,及其点击次数(默认0)

*/

for (int i = 0; i lt; jbutton.length; i++) {

jbutton[i] = new JButton(a[i]);// 定义按钮组建

jpa.add(jbutton[i]);// 将按钮添加到面板之中

jlabel[i] = new JLabel("您已点击" + a[i] + "的次数是:0");

jpa.add(jlabel[i]);

jbutton[i].addActionListener(this);

}

j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

j.add(jpa);

j.setTitle("测试使用");

j.setVisible(true);

j.setSize(400, 500);

}

/**

* 单击事件处理.

* lt;pgt;Title: actionPerformedlt;/pgt;

* lt;pgt;Description: lt;/pgt;

* @param actionevent

* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)

*/

@Override

public void actionPerformed(ActionEvent actionevent) {

//获取单击事件组件 名称 如1a

String buttonName = actionevent.getActionCommand();

//在数组中的位置

int index = Arrays.asList(a).indexOf(buttonName);

if (index != -1) {

int count = 1;

//判断map中是否存在当前按钮

if (countMap.containsKey(buttonName)) {

count = countMap.get(buttonName);

count += 1;

}

//记录当前按钮点击次数

countMap.put(buttonName, count);

jlabel[index].setText("您已点击" + buttonName + "的次数是:" + count);

if (count % 10 == 0) {

JOptionPane.showMessageDialog(null, count + "是10的倍数,所以我来提示你!");

}

}

}

public static void main(String[] args) {

new Buttoncall();

}

}

你的这种写法不对,逻辑有问题!

匿名内部类调用的全局变量 i

所以每次点击的时候i的值都等于5,这时候就会数组越界!我给你写了个例子,你参考下!

有问题再追问,good luck!

JAVA中怎么把list或map里的值动态添加至JTable

首先,循环list或者map

再次,就是在循环的时候,把list或者map中的值取出来放到JTable里面

如: for(int i=0;ilist.size();i++){

JTable table = new JTable();

..... //这个地方就可以创建JTable的 列和行了,或者你在里面定义好字符串然后在列表外面把他们加进去

}

java中使用map时控制其所占内存

你可以在放入键值对的时候增加一个统计Map容量的方法,就是在你往Map放入的时候,同时更新一个累加变量,增加的值就是本次加入的大小。

也可以直接继承一个Map的子类,然后重写其put方法达到监听的目的。

另外,键值数据类型是否必要?可以使用内存占用更短的类型。

你可以使用JProfiler来分析下你的程序的内存、cpu占用情况,更好的优化程序……

java 监听redis map是否有修改

/**

* @param args

*/

public static void main(String[] args) {

//连接 redis 服务

Jedis jedis = new Jedis( "192.168.88.15" ,6379);

//密码验证-如果你没有设置 redis 密码可不验证即可使用相关命令

// jedis.auth(" abcdefg ");

//简单的key-value 存储

jedis.set( "redis" , "myredis" );

System. out .println(jedis.get( "redis" ));

//在原有值得基础上添加,如若之前没有该key,则导入该key

//之前已经设定了 redis 对应" myredis ",此句执行便会使 redis 对应"myredisyourredis "

jedis.append( "redis" , "yourredis" );

jedis.append( "content" , "rabbit" );

// mset 是设置多个key-value值 参数(key1,value1,key2,value2,..., keyn , valuen)

// mget 是获取多个key所对应的value值 参数(key1,key2,key3,..., keyn ) 返回的是个list

jedis.mset( "name1" , "yangw" , "name2" , "demon" , "name3" , "elena" );

System. out .println(jedis.mget( "name1" , "name2" , "name3" ));

//map

MapString,String user = new HashMapString,String();

user.put( "name" , "cd" );

user.put( "password" , "123456" );

//map存入 redis

jedis.hmset( "user" , user);

// mapkey 个数

System. out .println(String. format ( "len:%d" , jedis.hlen( "user" )));

//map中的所有键值

System. out .println(String. format ( "keys: %s" , jedis.hkeys( "user" ) ));

//map中的所有value

System. out .println(String. format ( "values: %s" , jedis.hvals( "user" ) ));

//取出map中的name字段值

ListString rsmap = jedis.hmget( "user" , "name" , "password" );

System. out .println(rsmap);

//删除map中的某一个键值 password

jedis.hdel( "user" , "password" );

System. out .println(jedis.hmget( "user" , "name" , "password" ));

//list

jedis.del( "listDemo" );

System. out .println(jedis.lrange( "listDemo" , 0, -1));

jedis.lpush( "listDemo" , "A" );

jedis.lpush( "listDemo" , "B" );

jedis.lpush( "listDemo" , "C" );

System. out .println(jedis.lrange( "listDemo" , 0, -1));

System. out .println(jedis.lrange( "listDemo" , 0, 1));

//set

jedis.sadd( "sname" , "wobby" );

jedis.sadd( "sname" , "kings" );

jedis.sadd( "sname" , "demon" );

System. out .println(String. format ( "set num: %d" , jedis.scard( "sname" )));

System. out .println(String. format ( "all members: %s" , jedis.smembers( "sname")));

System. out .println(String. format ( "is member: %B" , jedis.sismember( "sname" , "wobby" )));

System. out .println(String. format ( "rand member: %s" , jedis.srandmember("sname" )));

//删除一个对象

jedis.srem( "sname" , "demon" );

System. out .println(String. format ( "all members: %s" , jedis.smembers( "sname")));

}

二、将自定义对象保存到redis中:

1、自定义pojo 实现Serializable 接口:

package cn.mingyuan.redis;

import java.io.Serializable;

/**

* 测试用 pojo ,实现了 Serializable ,以便进行系列化操作

*

* @author mingyuan

*

*/

public class Person implements Serializable {

private static final long serialVersionUID = -3562550857760039655L;

private String name ;

private int age ;

public Person(){}

public Person(String name, int age) {

super ();

this . name = name;

this . age = age;

}

public String getName() {

return name ;

}

public void setName(String name) {

this . name = name;

}

public int getAge() {

return age ;

}

public void setAge( int age) {

this . age = age;

}

@Override

public String toString() {

return "Person [name=" + name + ", age=" + age + "]" ;

}

}

2、测试类:

package cn.mingyuan.redis;

import java.io.ByteArrayInputStream;

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import redis.clients.jedis.Jedis;

public class Test {

/**

* @param args

* @throws IOException

* @throws ClassNotFoundException

*/

public static void main(String[] args) throws IOException,

ClassNotFoundException {

// Jedis redis = new Jedis ("192.168.88.15");

Jedis redis = new Jedis( "192.168.88.15" , 6379);

// connect可以不要,因为在执行set操作的时候会先进行判断客户端是否于服务器端建立了连接,若无,则启动连接过程

redis.connect();

String set = redis.set( "mingyuan" , "1" );

System. out .println( " set result \t" + set);

redis.incr( "mingyuan" );

String string = redis.get( "mingyuan" );

System. out .println( " get result of key 'mingyuan' \t" + string);

// 下面是对对象进行存储的测试代码

ByteArrayOutputStream bos = new ByteArrayOutputStream();

ObjectOutputStream oos = new ObjectOutputStream(bos);

Person person = new Person( "liudehua" ,22);

oos.writeObject(person);

byte [] byteArray = bos.toByteArray();

oos.close();

bos.close();

String setObjectRet = redis.set( "mingyuan" .getBytes(), byteArray);

System. out .println( " set object return \t" + setObjectRet);

byte [] bs = redis.get( "mingyuan" .getBytes());

ByteArrayInputStream bis = new ByteArrayInputStream(bs);

ObjectInputStream inputStream = new ObjectInputStream(bis);

Person readObject = (Person) inputStream.readObject();

System. out .println( " read object \t" + readObject.toString());

inputStream.close();

bis.close();

redis.disconnect();

}

}

关于javamap监听和监听Java的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-23,除非注明,否则均为首码项目网原创文章,转载请注明出处。