我希望Stack<Integer>像Eclipse调试器一样打印一个对象(即[1,2,3...]),但打印它out = "output:" + stack不会返回这个好结果.
为了澄清,我在谈论Java的内置集合,所以我无法覆盖它toString().
如何获得堆栈的可打印版本?
考虑一段示例代码.
public void testString()
{
int i = 0;
while(i < 100000000)
{
String s ="Hi hello bye" +i;
i++;
}
}
Run Code Online (Sandbox Code Playgroud)
在每次迭代中,都会创建一个新的String,并且下一次迭代不再需要它的值.我尝试打印之前消耗的内存并发布此testString()功能.这是他们的价值观.
Before invoking testString():
Total Memory: 91684864 (87.4375 MB)
Max Memory: 1360855040 (1297.8125 MB)
Free Memory: 72163552 (68.82052612304688 MB)
After invoking testString():
Total Memory: 424280064 (404.625 MB)
Max Memory: 1360855040 (1297.8125 MB)
Free Memory: 171766816 (163.80960083007812 MB).
Run Code Online (Sandbox Code Playgroud)
我看到使用了大量内存,并且由于当前处理字符串的方式,我担心JVM堆可能会超出范围.在迭代2中不再需要为迭代1生成的字符串,并且可以释放其存储空间.我相信这不会发生在这里.
我尝试使用StringBuffer和StringBuilder对象,内存使用情况似乎有很小的改善.
请帮助我更好,更好的方法.
我一直在想它,但已经没有想法了.我有10个长度为18的数组,其中包含18个双精度值.这18个值是图像的特征.现在我必须在它们上应用k-means聚类.
为了实现k均值聚类,我需要为每个数组提供唯一的计算值.是否有任何数学或统计或任何逻辑可以帮助我为每个数组创建计算值,这是基于其中的值所独有的.提前致谢.
这是我的数组示例.还有10个
[0.07518284315321135
0.002987851573676068
0.002963866526639678
0.002526139418225552
0.07444872939213325
0.0037219653347541617
0.0036979802877177715
0.0017920256571474585
0.07499695903867931
0.003477831820276616
0.003477831820276616
0.002036159171625004
0.07383539747505984
0.004311312204791184
0.0043352972518275745
0.0011786937400740452
0.07353130134299131
0.004339580295941216]
Run Code Online (Sandbox Code Playgroud) 我有两个List<String[]>(字符串数组列表),我想将内容相互匹配.显然==没有做到这一点,但.equals ()似乎也没有这样做.那么我应该如何检查字符串数组列表的内容是否相同?
顺便说一句,在上述两种情况下,我都收到了一条带有消息的异常null.
编辑:好的...出于某种原因只能x.equals(y)起作用,而不是y.equals(x).奇...
我有一个ArrayList,我需要将其转换为一个字符串.
String中的每个值都在标记内,并用逗号分隔,如下所示:
ArrayList list = [a,b,c]
String s = " ’a’,’b’,’c’ ";
Run Code Online (Sandbox Code Playgroud)
我正在寻找有效的解决方案.
我目前正在尝试开发一个用作购物清单的应用程序,其中用户将文本输入到 an 中EditText,按 a Button,然后将值保存到 a 中List,然后ListView用其值更新 a 。该应用程序运行良好,除非用户退出该应用程序,在这种情况下,用户输入的所有值都不会保存。这是我迄今为止尝试存储List.
public class MainActivity extends ListActivity {
private static final String SHARED_PREFS_NAME = "MY_SHARED_PREF";
ArrayList<String> mylist = new ArrayList<String>();
ArrayAdapter<String> adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listview = (ListView) findViewById(android.R.id.list);
Button btn = (Button) findViewById(R.id.button);
mylist = (ArrayList<String>) getArray();
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mylist);
OnClickListener listener = new OnClickListener() {
@Override
public void onClick(View v) {
EditText edit …Run Code Online (Sandbox Code Playgroud) 我不是Java专家; 我希望这个名单上有更多精通Java的人可以帮助我.
我当前的服务器上有以下代码.
<cfset var buffer = CreateObject("java", "java.lang.StringBuffer").init("") />
<cfset buffer.append(variables.myVar) />
Run Code Online (Sandbox Code Playgroud)
我试图将这些代码移动到另一台服务器.问题是这个新服务器(共享主机)不允许调用Java对象.所以,我把它们改成了以下几点.
<cfset var buffer = "" />
<cfset var buffer = buffer & variables.myVar />
Run Code Online (Sandbox Code Playgroud)
我的问题是,新代码是否与旧代码相当?使用java.lang.StringBuffer有什么好处?
在此先感谢,Monte
我是java的初学者.在我的代码中我有一个arraylist,我想完全输出为String.为此,我写了这段代码.
package factorytest;
import java.util.ArrayList;
import java.util.List;
public class MatchingWord {
public static void main(String[] args) {
List <String> myList = new ArrayList<String>();
myList.add("hello");
myList.add("first");
myList.add("second");
myList.add("third");
myList.add("fourth");
// 1st approach
String listString = "";
for (String s : myList)
{
listString += s + "\t";
}
System.out.println(listString);
}
}
Run Code Online (Sandbox Code Playgroud)
我的输出是
hello first second third fourth
Run Code Online (Sandbox Code Playgroud)
我不希望最后一个元素之后的最后一个\ t.我怎样才能做到这一点.
可能重复:
将ArrayList转换为字符串的最佳方法
我班上有一个ArrayList.
我需要创建一个由所有这些字符串组成的字符串(我知道,为什么不首先使用字符串 - 我在那里处理惊人的遗留代码并且我的双手并列).
有比这更快的方式:
String total;
for (String s : list)
{
total += s;
}
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助 !
我有一个ArrayList<String>定期添加的。我想要做的是将整个 ArrayList 转换为 aString而不进行循环。谁能告诉我可以不使用循环吗?
编辑:所以我们找到了一些解决方案,比如
list.stream().collect(Collectors.joining());
Run Code Online (Sandbox Code Playgroud)
或者
String result = String.join(",", list);
Run Code Online (Sandbox Code Playgroud)
或其他一些。现在只是为了获取知识,我提出了一个问题,哪种方式是编译器的最佳方式?
java ×9
arraylist ×3
string ×3
android ×2
arrays ×2
list ×2
coldfusion ×1
debugging ×1
jvm ×1
k-means ×1
memory-leaks ×1
performance ×1
pretty-print ×1