JAVA如何获取list字节数_Java中for循环每次都通过list.size、str.length、length()获取数组或者字符串的长度是否消耗资源...
时间: 2024-03-16 22:42:29 浏览: 113
获取List的字节数可以通过将List转换为字节数组来实现。具体实现代码如下:
```java
List<String> list = new ArrayList<>();
// 填充list
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(list);
oos.close();
byte[] bytes = baos.toByteArray();
int sizeInBytes = bytes.length;
```
至于Java中for循环每次都通过list.size、str.length、length()获取数组或字符串的长度是否会消耗资源,答案是会。因为在每次循环中都需要重新计算长度,而这个计算过程是需要消耗一定的资源的。所以,如果循环次数比较多,建议在循环外部先将长度缓存下来,避免重复计算。例如:
```java
List<String> list = new ArrayList<>();
// 填充list
int size = list.size();
for (int i = 0; i < size; i++) {
// ...
}
```
相关问题
c# byte数组转字符串
在C#中,可以使用以下方法将字节数组转换为字符串:
1. 使用Encoding类的GetString方法:
byte[] bytes = { 97, 98, 99, 100, 101, 102 };
string str = Encoding.ASCII.GetString(bytes);
[2]
2. 使用BitConverter和Split方法进行转换:
byte[] bytes = { 97, 98, 99, 100, 101, 102 };
string str = BitConverter.ToString(bytes);
string[] tempArr = str.Split('-');
byte[] decBytes = new byte[tempArr.Length];
for (int i = 0; i < tempArr.Length; i++)
{
decBytes[i = Convert.ToByte(tempArr[i], 16);
}
[1]
无论使用哪种方法,都可以将C#的字节数组转换为字符串。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [C# byte[]数组和string的互相转化 (四种方法)](https://blog.csdn.net/pretty_h/article/details/85297935)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [C#字节数组转换成字符串浅析](https://blog.csdn.net/Joetao/article/details/4600223)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
如何将一段超长Unicode文本,按2000个字节一组存放入到不同的字符串数组中呢
你可以按照以下步骤来实现:
1. 将超长Unicode文本转换为UTF-8编码的字节数组。
2. 定义一个字符串数组,用于存放分割后的字符串。
3. 定义一个变量count,用于记录已经存储的字节数。
4. 循环遍历UTF-8编码的字节数组,每次取出2000个字节,并将其转换为字符串。
5. 将转换后的字符串存入字符串数组中。
6. 将count变量增加2000,以便下一次循环取出后续的字节。
7. 重复步骤4~6,直到遍历完整个字节数组。
以下是示例代码:
```java
public static String[] splitUnicodeString(String unicodeText) throws UnsupportedEncodingException {
byte[] utf8Bytes = unicodeText.getBytes("UTF-8");
int length = utf8Bytes.length;
int count = 0;
List<String> list = new ArrayList<>();
while (count < length) {
int endIndex = Math.min(count + 2000, length);
String str = new String(Arrays.copyOfRange(utf8Bytes, count, endIndex), "UTF-8");
list.add(str);
count += 2000;
}
return list.toArray(new String[0]);
}
```
你可以调用该方法,将超长Unicode文本进行分割,每个字符串数组中最多包含2000个字节的内容。
阅读全文