使用Java将Redis数据库连接到Azure云

使用Java将Redis数据库连接到Azure云,java,azure,redis,cloud,jedis,Java,Azure,Redis,Cloud,Jedis,你好,我的Java代码中有这个错误。我正在尝试将我的数据库链接到azure云。我使用了列表命令: Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 11, Size: 11 at java.util.ArrayList.rangeCheck(ArrayList.java:653) at java.util.ArrayList.get(ArrayList.java:429

你好,我的Java代码中有这个错误。我正在尝试将我的数据库链接到azure云。我使用了列表命令:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 11, Size: 11
    at java.util.ArrayList.rangeCheck(ArrayList.java:653)
    at java.util.ArrayList.get(ArrayList.java:429)
    at anothercloud.Anothercloud.main(Anothercloud.java:63)
Java Result: 1

包装另一个云;
导入java.awt.FlowLayout;
导入java.awt.event.ItemEvent;
导入java.awt.event.ItemListener;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.Map;
导入javax.swing.JComboBox;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JOptionPane;
导入redis.clients.jedis.jedis;
导入redis.clients.jedis.JedisShardInfo;
导入redis.clients.jedis.exceptions.JedisConnectionException;
/**
*
*@作者阿里尔
*/
公共类另一个云{
静态HashMap redisData=新HashMap();
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
布尔usesl=true;
inclass infos=新的inclass();
ArrayList name=新的ArrayList();
ArrayList值=新的ArrayList();
字符串anjiecachekey=“xxxx=”;
JedisShardInfo shardInfo=new JedisShardInfo(“anjiecloud.redis.cache.windows.net”,6380,useSsl);//使用辅助连接字符串
shardInfo.setPassword(“xxxx=”);//使用辅助访问密钥
//简单PING命令
绝地武士=新绝地武士(shardInfo.getHost());
试一试{
绝地武士(anjiecachekey);
绝地武士。连接();
System.out.println(“我的缓存响应:+jedis.ping());
if(jedis.llen(“state”)==0&&jedis.llen(“number”)==0){
对于(Map.Entry m:inclass.Map.entrySet()){
lpush(“state”,(String)m.getValue();
绝地武士lpush(“数字”,m.getKey().toString());
}
}
用于(字符串s:jedis.lrange(“state”,0,1000)){
名称。添加(s);
}
用于(字符串r:jedis.lrange(“数字”,0,1000)){
增值(r);
}
对于(int i=0;i

请问如何更正此错误?如有任何反馈,将不胜感激。我不熟悉Java语言及其语法。错误似乎也来自我的for循环。该错误似乎也来自于我的for循环。

在错误状态下,您将看到
IndexOutOfBoundsException
。这意味着您正试图访问一个大于/小于其范围的列表索引。在这种情况下,
value.get(i)
抛出错误:

for (int i = 0; i < names.size(); i++)
            {
                redisData.put(Double.parseDouble(value.get(i)), names.get(i));
            }
for(int i=0;i
尝试修改代码,如下所示:

for(int i=0;i

此外,我建议您重新审视Redis cache的java实现:

由于错误状态,您将看到
IndexOutOfBoundsException
。这意味着您正试图访问一个大于/小于其范围的列表索引。在这种情况下,
value.get(i)
抛出错误:

for (int i = 0; i < names.size(); i++)
            {
                redisData.put(Double.parseDouble(value.get(i)), names.get(i));
            }
for(int i=0;i
尝试修改代码,如下所示:

for(int i=0;i

此外,我建议您重新审视Redis缓存的java实现:

有人能回答吗?这是一个包含72个州数据的Java文件,有人能回答吗?这是你的
for (int i = 0; i < names.size() - 1; i++)
                {
                    redisData.put(Double.parseDouble(value.get(i)), names.get(i));
                }