小编Bhu*_*han的帖子

具有恒定时间访问和可变大小的数据结构

我在一次采访中被问到这个问题.

是否存在具有以下2种功能的数据结构:

1.持续时间访问(随机访问),如ArrayList

2.可变大小,如LinkedList

如果没有这样的数据结构,请自行创建一个.

java data-structures

2
推荐指数
1
解决办法
7771
查看次数

单身如何用于管理数据库连接?

这可能是一个非常古老,多次被问到的问题.但我无法找到合适的答案,所以再问一遍.

对于数据库连接,我们总是使用单例对象.当数千名用户访问数据库时,如何保持性能?我的意思是,如果每秒有数千个请求,那么如何管理数据库连接,因为我们使用的是单例?数据库请求是否已序列化?或者在这些情况下不使用单身人士?

我知道这是一个愚蠢的问题,但我很困惑.如果有人可以提供一些参考阅读链接,那将是很好的.

谢谢.

java database singleton database-design design-patterns

2
推荐指数
1
解决办法
3333
查看次数

如何使用Java处理UTF-16LE编码的文本文件?或将其转换为ASCII?

如果有人问过,我很抱歉.我正在尝试使用Java处理文本文件.文本文件从MS SQLServer导出.当我在PSPad中打开它时(我可以在其中以十六进制格式查看任何文件的文本编辑器),它告诉我我的文本文件在UTF-16LE.因为我从其他人那里得到它,所以很有可能.

现在我的Java程序无法处理这种格式.所以我想知道我是否有办法以ASCII格式转换我的文本文件或进行一些预处理或其他什么?我可以修改文件.

任何帮助是极大的赞赏.

谢谢.

编辑1

我写了这个程序,但它没有按预期工作.如果我在PSPad中看到输出文件,我可以看到每个字符为2字节字符,例如'2'是3200而不是32; 'M'是4D00而不仅仅是4D等.尽管输出文件的编码是UTF-8.我有点困惑.谁能告诉我我做错了什么?

public static void main(String[] args) throws Exception {

        try {
            // Open the file that is the first
            // command line parameter
            FileInputStream fstream = new FileInputStream(
                    "input.txt");
            // Get the object of DataInputStream
            DataInputStream in = new DataInputStream(fstream);
            BufferedReader br = new BufferedReader(new InputStreamReader(in,"UTF-16LE"));
            String strLine;
            // Read File Line By Line
            while ((strLine = br.readLine()) != null) {
                // Write to the file
                writeToFile(strLine);
            }
            // …
Run Code Online (Sandbox Code Playgroud)

java character-encoding utf-16le

2
推荐指数
1
解决办法
8946
查看次数

为什么迭代器仍然存在于java中

据我所知,Iterator和ListIterator之间的主要区别是

迭代器:使您只能在向前方向上循环收集,以获取或删除元素

ListIterator:它扩展了Iterator,允许列表的双向遍历和元素的修改

如果ListIterator比Iterator更强大,那么sun java开发人员应该只为ListIterator提供实现并弃用迭代器.为什么Iterator仍然存在于java中?使用Iterator比使用ListIterator有什么好处吗?

java iterator

1
推荐指数
2
解决办法
1160
查看次数

在Java中使用就地集合初始化器有什么缺点

考虑一下这段代码:

Set<String> mySet = new HashSet<String>(){{add("foo");add("boo");}};
Run Code Online (Sandbox Code Playgroud)

或者HashMap:

Map<String,String> myMap = new HashMap<String,String>(){{put("foo","bar");put("boo","jar");}};
Run Code Online (Sandbox Code Playgroud)

优点只是找到:更少的代码行,简洁.但有什么缺点呢?

UPD:问题不仅仅是关于集合,而是关于所有类型的集合,Map为了说明这一点而添加.

java collections initialization map set

1
推荐指数
1
解决办法
2185
查看次数

我的Thread.sleep()出现问题

我正在创建一个简单的视频扑克程序,现在我正在处理用户指定了他想要持有的牌之后执行的操作,并在抽奖后用新牌替换丢弃的牌.我有一个动作,我想在所有替换之间逐个更换卡片,但是使用下面的代码,它将睡眠500毫秒乘以我必须更换的卡片数量然后替换全部卡片一次,而不是按我的要求一次更换一张.任何帮助是极大的赞赏!

Action drawAction = new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            int deckPos = 5;

            if((holdValFirst.getText()).equals("HELD")){}
            else{                   
                holdFirst.setIcon(new ImageIcon(((deck.getDeck())[deckPos]).getCardName()+".gif"));
                deckPos++;
                try
                {
                    Thread.sleep(500);              
                }catch (InterruptedException ie){
                    System.out.println(ie.getMessage());
                }
            }
            if((holdValSecond.getText()).equals("HELD")){}
            else{                   
                holdSecond.setIcon(new ImageIcon(((deck.getDeck())[deckPos]).getCardName()+".gif"));
                deckPos++;
                try
                {
                    Thread.sleep(500);              
                }catch (InterruptedException ie){
                    System.out.println(ie.getMessage());
                }               
            }
            if((holdValThird.getText()).equals("HELD")){}
            else{
                holdThird.setIcon(new ImageIcon(((deck.getDeck())[deckPos]).getCardName()+".gif"));
                deckPos++;
                try
                {
                    Thread.sleep(500);              
                }catch (InterruptedException ie){
                    System.out.println(ie.getMessage());
                }                   
            }
            if((holdValFourth.getText()).equals("HELD")){}
            else{                   
                holdFourth.setIcon(new ImageIcon(((deck.getDeck())[deckPos]).getCardName()+".gif"));
                deckPos++;  
                try
                {
                    Thread.sleep(500);              
                }catch (InterruptedException ie){
                    System.out.println(ie.getMessage());
                }               
            }
            if((holdValFifth.getText()).equals("HELD")){}
            else{                                       
                holdFifth.setIcon(new ImageIcon(((deck.getDeck())[deckPos]).getCardName()+".gif"));
                deckPos++;                                  
            }               
        }
    };
Run Code Online (Sandbox Code Playgroud)

java multithreading thread-sleep

1
推荐指数
1
解决办法
573
查看次数

如何找出使用jQuery单击哪个表行?

我正在使用'live'函数在表行上执行一些点击操作,即

$("tr").live('click',function() {
      alert('Some table row is clicked');
});
Run Code Online (Sandbox Code Playgroud)

我想知道点击和使用哪一行if-else,根据它提供一些自定义警报.谁能告诉我怎么做?

非常感谢.

编辑1:

有没有办法可以引用函数内部单击行的元素?

jquery

1
推荐指数
1
解决办法
9818
查看次数

为什么java Grep与OutOfMemoryError崩溃?

我开箱即用或多或少地运行以下代码

http://download.oracle.com/javase/1.4.2/docs/guide/nio/example/Grep.java

我正在使用以下VM参数

-Xms756m -Xmx1024m

它在400mb文件上与OutOfMemory崩溃.我究竟做错了什么?

堆栈跟踪:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at java.nio.HeapCharBuffer.<init>(Unknown Source)
    at java.nio.CharBuffer.allocate(Unknown Source)
    at java.nio.charset.CharsetDecoder.decode(Unknown Source)
    at com.alluvialtrading.tools.Importer.<init>(Importer.java:46)
    at com.alluvialtrading.tools.ReutersImporter.<init>(ReutersImporter.java:24)
    at com.alluvialtrading.tools.ReutersImporter.main(ReutersImporter.java:20)
Run Code Online (Sandbox Code Playgroud)

java out-of-memory

0
推荐指数
1
解决办法
1681
查看次数

Java集合 - 覆盖equals和hashCode

class Hash {
  int a;

  Hash(int h){
    a=h;
  }

  public boolean equals(Object o) {     
    Boolean h=super.equals(o);
    System.out.println("Inside equals ");
    return h;
  }

  public int hashCode() {    
    System.out.println("Inside Hash");    
    return 2;
  }    
}
Run Code Online (Sandbox Code Playgroud)
public class Eq {    
  public static void main(String...r) {    
    HashMap<Hash,Integer> map=new HashMap<Hash,Integer>();    
    Hash j=new Hash(2);    
    map.put(j,1);
    map.put(j,2);
    System.out.println(map.size());
  }
}
Run Code Online (Sandbox Code Playgroud)

输出是

inside hash

inside hash
1

由于它返回相同的哈希码,第二次在hashmap中添加一个对象时,它必须使用equals方法,但它不会调用.那么问这个问题呢?

java collections equals hashcode

0
推荐指数
1
解决办法
1377
查看次数

如何实现isWeekday()和isWeekend()?

我想问一下.我的日期格式如2011-06-05 00:00:00我想在java中构建一个方法,将这个日期验证为工作日或周末.

方法是这样的.

public boolean isWeekday(Date dt){

    //process here
    return true;
}
Run Code Online (Sandbox Code Playgroud)

public boolean isWeekend(Date dt){

    //process here
    return true;    
}
Run Code Online (Sandbox Code Playgroud)

我应该编码什么来验证给定的日期?

谢谢..

java calendar

0
推荐指数
1
解决办法
1449
查看次数

字符串问题 - Java

我正在为课程编写一个程序,我在其中分析输入的不同产品代码.这很简单,但我遇到了问题.如果用户输入"E"或"e",我试图结束循环.但是,它根本不会结束循环.这是在while语句的末尾,所以将循环设置为false应该结束它,它甚至不输出总数,所以我搞砸了一些东西.代码是字符串类型.

        // Prompt the user for another company code or exit
        System.out.print("Enter the company code or type 'e' to exit: ");

        // Input the user's company code
        code = scan.nextLine();

        // Check to see if the user wants to exit
        if (code == "e" || code == "E") {
            // Output final statistics
            System.out.print("Total valid codes: " + valid + "/n");
            System.out.print("Total banned codes: " + banned);

            // End the loop     
            loop = false;
        }
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢!

java string compare equality equals

0
推荐指数
1
解决办法
179
查看次数

在R 2.14和OpenSUSE下安装rJava失败

我试图在OpenSUSE 11.3上的R 2.14.1-9.1上安装rJava包.我已经看到了这个问题,但它适用于Ubuntu.我已经安装了Sun JDK并重新配置了系统以使用它.

admin@linux-nb3w:~> java -version
java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11)
Java HotSpot(TM) Client VM (build 20.4-b02, mixed mode)
admin@linux-nb3w:~> 
Run Code Online (Sandbox Code Playgroud)

编辑1: 更新了JDK和JRE.现在运行时出现稍微不同的错误install.packages("rJava"),我得到以下输出错误(发布新错误,粗体以结尾):

> install.packages("rJava")
Installing package(s) into ‘/home/admin/R/i686-pc-linux-gnu-library/2.14’
(as ‘lib’ is unspecified)
--- Please select a CRAN mirror for use in this session ---
Loading Tcl/Tk interface ... done
trying URL 'http://ftp.iitm.ac.in/cran/src/contrib/rJava_0.9-3.tar.gz'
Content type 'application/x-gzip' length 537153 bytes (524 Kb)
opened URL
==================================================
downloaded 524 …
Run Code Online (Sandbox Code Playgroud)

r rjava

0
推荐指数
1
解决办法
2847
查看次数