我是java的新手,我在使用数组和哈希映射时遇到了很大麻烦。
问题:我从包含两个ArrayLists的Amazon S3服务获取objectListing。 (ObjectSummaries和commonPrefixes)。
我循环遍历它们并将它们添加到List String中。这是我的代码
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;
}
}
这给了我带字符串键的列表。但是现在我想获得对象的关键字的大小和Lastmodified。我应该能够知道我添加到键中的对象的每个键的大小和最后修改。
我不知道我是应该使用hashmap还是什么?我不知道该怎么做。
答案 0 :(得分:0)
以下是如何做到这一点:
创建一个包含所需参数的类
$n
创建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
String
将值添加到列表
List<MyObject> myObj = new ArrayList<MyObject>();