我有这个代码,但只适用于小写字母.我希望这可以对列表进行排序,同时忽略大写字母..
package sortarray.com;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class SortArray extends Activity {
ArrayList<String[]> matchedFruits = new ArrayList<String[]>();
TextView selection;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String fruits[] = new String[7];// Sorted array
fruits[0] = "apple";
fruits[1] = "apricot";
fruits[2] = "banana";
fruits[3] = "mango";
fruits[4] = "melon";
fruits[5] = "pineapple";
fruits[6] = "peach";
char currChar = fruits[0].charAt(0);// Get first char of first element
boolean match = false;
int len …Run Code Online (Sandbox Code Playgroud) 有没有人有一个Java片段可以返回目录中的最新文件(或者是一个简化这种事情的库的知识)?
我有一个方法从位于目录中的文件中读取内容.但由于功能原因,有必要从最旧的文件开始(由属性lastmodified指示)并以最新文件结束.
这是我打开和读取文件的代码:
FilenameFilter filter = new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.matches("access_log.*");
}
};
File folder = new File("/home/myfiles");
File[] listOfFiles = folder.listFiles(filter);
for (int i = 0; i < listOfFiles.length; i++) {
String sFileName = listOfFiles[i].getName();
File accessLogFile = new File(aLog.getPath(), sFileName);
long time=accessLogFile.lastModified();
// do something with the file
}
Run Code Online (Sandbox Code Playgroud)
有没有人可以解决我如何按日期快速排序我的文件列表?
在带有新I/O API的Java 7中,是否有一种简单的方法可以按上次修改日期列出目录的内容?基本上我只需要获取最长时间未修改的文件(按上次修改升序排序,取第一个文件名).
我在Java中有一个带有大量文件的ArrayList(~40,000个文件).我需要按日期对这些文件进行升序/降序排序.目前,我用的很简单
Collections.sort(fileList, new FileDateComparator());
Run Code Online (Sandbox Code Playgroud)
FileDateComparator的位置
public class FileDateComparator implements Comparator<File>
{
@Override
public int compare(File o1, File o2)
{
if(o1.lastModified() < o2.lastModified())
return -1;
if(o1.lastModified()==o2.lastModified())
return 0;
return 1;
}
}
Run Code Online (Sandbox Code Playgroud)
排序对我来说占用的时间太长,比如20秒或更长时间.有没有更有效的方法来实现这一点?我已经尝试使用Apache I/O LastModifiedFileComparator作为比较器,但它似乎以相同的方式实现,因为它需要相同的时间.
我知道这种异常有很多问题,而且我确实找到了解决方案,但我的问题是不同项目中的相同代码不会抛出异常,而这个却抛出异常。这两个项目都具有相同版本的 Java 和其他库。
基本上我有一个小函数,它从目录中检索文件列表,按时间戳对它们进行排序,然后返回绝对文件名列表:
public static List<String> getFiles(String dir) {
List<String> fileList = new ArrayList<String>();
File[] files = new File(dir).listFiles();
// Sort files by the date of their creation (last modification)
Arrays.sort(files, LastModifiedFileComparator.LASTMODIFIED_COMPARATOR);
for (File f : files) {
fileList.add(f.getAbsolutePath());
}
return fileList;
}
Run Code Online (Sandbox Code Playgroud)
基本上,在其中一个项目中,此代码按预期执行,而在其他项目中,它会抛出IllegalArgumentException: Comparison method violates its general contract!
我知道TimSort从 1.7 开始这是 Java 中的默认排序,解决方案之一是使用强制使用旧版的属性MergeSort。我没有走那条路...相反,我“缓存”文件及其时间戳,如下所示:
public static List<String> getFiles(String dir) {
List<String> fileList = new ArrayList<String>();
File[] files = new File(dir).listFiles();
FileLastModifiedPair[] …Run Code Online (Sandbox Code Playgroud) 我有一个包含文件列表的目录.我想从所述目录的所有内容中获取最新文件.我该怎么做?
我正在使用此代码,但我没有从中获取最新文件.请帮忙.
def fileDir = new File("A/B").listFiles().first()
Run Code Online (Sandbox Code Playgroud)
谢谢.
我正在制作一个应用程序,我必须在sdcard中删除最近添加的mp3文件.保存歌曲的格式为:
Songhello_17_26.amr
Run Code Online (Sandbox Code Playgroud)
其中17_26是添加歌曲的时间.谁能帮助我如何删除sdcard中最近添加的文件.我的意思是说我要删除时间意味着最新添加的文件应该被删除.任何帮助将不胜感激.
java.io.File.list()给出了顺序创建的文件夹的不同顺序
创建名称为的临时文件夹时
"Temp" + auto-incremented number
e.g. Temp1, Temp2, Temp3...Temp10, Temp11 and so on.
Run Code Online (Sandbox Code Playgroud)
但是当我使用java.io.File.list()来获取文件夹列表以便在创建文件夹时按顺序进一步处理,
but its giving as Temp1, Temp10, Temp11...Temp19, Temp2, Temp20, Temp21 and so on.
I also tried Arrays.sort(files); but no change in order of folder list
Run Code Online (Sandbox Code Playgroud)
请告诉我们如何获得与顺序创建的文件夹相同的订单列表?
java ×7
file ×4
sorting ×3
android ×2
arraylist ×1
collections ×1
comparator ×1
date ×1
delete-file ×1
file-io ×1
filesystems ×1
groovy ×1
java-7 ×1
sd-card ×1