Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java数组、数组列表、哈希映射及其使用_Java_Arrays_Arraylist - Fatal编程技术网

java数组、数组列表、哈希映射及其使用

java数组、数组列表、哈希映射及其使用,java,arrays,arraylist,Java,Arrays,Arraylist,我是java的新手,在数组和哈希映射方面遇到了很大的麻烦 问题:我从AmazonS3服务中获取ObjectList,该服务包含两个ArrayList。(对象摘要和通用前缀) 我将遍历它们并将它们添加到列表字符串中。这是我的密码 try { AmazonS3 s3client = new AmazonS3Client(new BasicAWSCredentials(access_key_id, secret_access_key)); ObjectList

我是java的新手,在数组和哈希映射方面遇到了很大的麻烦

问题:我从AmazonS3服务中获取ObjectList,该服务包含两个ArrayList。(对象摘要和通用前缀)

我将遍历它们并将它们添加到列表字符串中。这是我的密码

    try {
        AmazonS3 s3client = new AmazonS3Client(new BasicAWSCredentials(access_key_id, secret_access_key));

        ObjectListing listKey = s3client.listObjects(new ListObjectsRequest().withBucketName(bucket).withPrefix(key).withDelimiter("/"));
        List<String> keys = new ArrayList<String>();
        for(String obj2: listKey.getCommonPrefixes()){
            String test=obj2;
            keys.add(test);
        }
        for (S3ObjectSummary obj : listKey.getObjectSummaries()) {
            keys.add(obj.getKey());
        }
        return keys;

    } catch (AmazonServiceException x) {
        String errorCode = x.getErrorCode();
        if (!errorCode.equals("NoSuchKey")) {
            throw x;
        }
    }
试试看{
AmazonS3 s3client=新的AmazonS3客户端(新的基本凭证(访问密钥id、机密访问密钥));
ObjectListing listKey=s3client.listObjects(新ListObjectsRequest().withBucketName(bucket).withPrefix(key).withDelimiter(“/”);
列表键=新的ArrayList();
对于(字符串obj2:listKey.getCommonPrefixes()){
字符串测试=obj2;
键。添加(测试);
}
对于(S3ObjectSummary对象:listKey.getObjectSummaries()){
add(obj.getKey());
}
返回键;
}捕获(AmazonServiceException x){
字符串errorCode=x.getErrorCode();
如果(!errorCode.equals(“NoSuchKey”)){
掷x;
}
}
这将为我提供带有字符串键的列表。但是现在我还想得到objectsummary键的大小和Lastmodified。我应该能够知道我添加到键中的objectsummary的每个键的大小和最后修改


我不知道我应该用hashmap还是什么?我不知道怎么做。

以下是您可以做到的:

  • 创建具有所需参数的类

    public class MyObject {
        private String key;
        private int size;
        private Date lastModified;
    
        public MyObject() {}
    
        public MyObject(String key, int size, Date lastModified) {
             this.key = key;
             this.size = size;
             this.lastModified = lastModified;
        }
    
        /* Getters-Setters*/
    }
    
  • 创建
    MyObject
    的列表,而不是
    字符串

    List<MyObject> myObj = new ArrayList<MyObject>();
    

  • 可能的重复项您可以使用hashmap和use key作为hashmap键,以及包含所有要存储为值的数据的数据结构。我希望将commonPrefixes和ObjectSummaries都存储在一个字符串类型的arraylist中。否则,我会遇到其他问题,需要对代码的其他部分进行更多更改。可能吗?我该怎么做?在这种情况下,您可以将其他两个属性设置为
    null
    。例如,
    String test=obj2;添加(新的MyObject(obj2,null,null))
    
    for (S3ObjectSummary obj : listKey.getObjectSummaries()) {
        myObj.add(new MyObject(obj.getKey(), obj.getSize(), obj.getLastModified()));
    }